大家好,欢迎来到IT知识分享网。
1 int val1,val2,val3; 2 3 int *p1 = &Val1; 4 5 int *p2 = &val2; 6 7 int *p3 = &val3;
使用指针的指针:
1 int **pp1 = &p1; 2 3 int **pp2 = &p2; 4 5 Int **pp3 = &p3;
对于int **pp1 = &p1; 我们可以理解成取得p1的地址赋值给指针pp1,*pp1就是p1,**pp1就是val1。用下面的图来表示就是:
现在改写 *pp1 = p2 ,就是将p2存放的地址赋值给了p1,现在p1指向的地址为val2的值,所以现在int num= *p1,num就等于6。
指针存放的是对象在内存中的地址。
&是取地址,意思是返回当前对象在内存的中的地址
*是取值,意思是返回一个指针所指向的对象,如果当前指针保存的是一个内存地址,那么*就返回这个内存地址所对应的对象
所以当*pp1 = p2,就是返回pp1所指向的对象p1,然后将p2指向的地址赋值给p1,那么p1这个指针所指向的对象就变成了val2。
&:取地址
*:取值
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34743.html