二级指针的问题
假设我定义一个一级指针与二级指针还有一个字符变量。char*str1,**pstr1,str;我知道了,str1=&str是把变量str的地址值赋给str1,那样str就...
假设我定义一个一级指针与二级指针还有一个字符变量。
char *str1, **pstr1, str;
我知道了,str1 = &str 是把变量str的地址值赋给str1 ,那样str就和str1通用了,*str1等于str的变量值。&str1是什么?&*str1又是什么?
还有**pstr1 *pstr1 pstr1 &**pstr1 &*pstr1 &pstr1 又分别是什么东西?分别可以装什么东西? 展开
char *str1, **pstr1, str;
我知道了,str1 = &str 是把变量str的地址值赋给str1 ,那样str就和str1通用了,*str1等于str的变量值。&str1是什么?&*str1又是什么?
还有**pstr1 *pstr1 pstr1 &**pstr1 &*pstr1 &pstr1 又分别是什么东西?分别可以装什么东西? 展开
1个回答
展开全部
你定义了一个变量,就会分配内存地址,str1、pstr1、str都是变量,所以都有一个地址,&str1就是表示的是str1的地址,不过这是个指针变量,该地址内容是存的是地址,&*str1,*str1=str,所以&*str1=&str,**pstr1这个是个二级指针,pstr1是个变量,有自己的地址,因为是个指针变量,所以里面存放的是地址,*pstr1所指的类型是char *类型(这里面可以看成是str变量类型),所以你可以这样赋值,pstr1=&str1,(即*pstr1=str1),你想下,现在如果要用pstr1访问str怎么访问,因为*pstr1=str1,所以再加个*,就可以访问str1所指的内容(即**pstr1),你可以这样想,str1要访问str,要加*,而*pstr1=str1,所以也要加*,大体就是这样的,刚学指针,要多理解下内存的分配
更多追问追答
追问
我差不多把三级及以下的指针搞清楚了,谢谢了哈。问题是不会用。。。。。
还有指针类型实在是超多。。。
追答
三级指针,我还没有看到谁用过呢,把二级及以下的搞清楚了就行了,你不会用的主要原因是你对内存的分配不怎么熟悉,如果熟练的话,你会非常喜欢用指针的,C的一个特性就是指针的高效,没写一个程序,你要清楚里面的内存分配,能达到这一步的话,指针对你来说没什么问题了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询