精英盒子 -> 程序设计 -> C++指针问题 [打印本页]

rui7157 2011-08-11 10:20

C++指针问题

int i=3;
int *iptr=&i;
int **iptrptr=&iptr;
(*iptrptr就是iptr这怎样理解?)详细点解答

outman 2011-08-11 11:02
*是指针 **则是指向指针的指针 所以把iptrptr解除一层引用后返回的还是指针

jybox 2011-08-11 17:02
首先,*有三个不同的含义:
1.指针声明符,只用于指针声明
2.乘法运算符(在本题中无视)
3.指针取值运算,即获得指针所指向的地址的值,只能用于指针变量

而&也有3个含义
1.位与运算(本题中无视)
2.声明引用变量(本题中依旧无视)
3.取变量地址运算,可以用于任何变量(包括指针变量和普通变量),得到变量本身的地址

变量和指针本身
变量本身是它所储存的值,如果要得到变量的地址应该   &变量名
指针本身是它所储存的地址,如果要得到它的地址的值应该    *指针名

多级指针,
声明时,使用了多个*,即为多重指针,理论上可以无限重
例如题中的二级指针,他指向一个一级指针(普通指针)


理解了上面的内容,自然很容易了
首先声明了一个二级指针iptrptr,把它的内容(它指向的地址)设置为了iptr的地址
iptrptr首先指向一个一级指针iprt,然后这个一级指针指向i
*iptrptr即iptrptr执行的地址的值内容,即iprt

貌似讲的不是很明白

rui7157 2011-08-11 17:58
有点过头了…只需讲重点就可以了,其它的我是知道的。(另外有个小问题,我的金币和威望好像减少了,而且我在论坛看到我的消息后面有个(1)但是打开消息什么也没有??)

rui7157 2011-08-11 18:02
还是谢谢了!非常感谢!你这样积极地解答问题网站将来会越做越好的!我有问题也会经常来问的!

abreto 2011-08-11 21:37
=、=||好吧,我来晚了




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.044944 second(s),query:5 Gzip enabled