温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

关于指针的一些理解

发布时间:2020-08-05 13:25:05 来源:网络 阅读:278 作者:a498476715 栏目:编程语言

1. 指针的定义

指针保存的是所指向的对象的地址。

int a = 3;
int *p = &a; // 定义一个指向×××数a的指针p,此处,int代表p是指向一个×××数的指针,*表明
             // 当前定义的是一个指针,p的值为&a,即a的地址

上面的指针也可以这样定义

int *p;
p = &a;


2. 指针的指针

同理,我们可以定义一个指向指针的指针, 它保存的是所指向的指针的地址

int a = 3;
int *p = &a;
int **q = &p; //**说明是指向指针的指针


3. 指针内容的读取

上面的程序中,指针p的值是a的地址,我们想通过p来得到a的值,则用*p; 通过q来获取a的值,则用**q。

printf("a's address is: %p.\n", &a); 
printf("p's value is: %p.\n", p); //地址的占位符都是%p
printf("p 指向的对象的值: %d.\n", *p);
printf("p's address is : %p.\n", &p);
printf("q's value is: %p.\n", q);
printf("q 指向的指针的值: %p.\n", *q);
printf("q 指向的指针指向的对象的值: %d.\n", **q);

上面代码的输出:

a's address is: 0x7fff5bce5a9c.

p's value is: 0x7fff5bce5a9c.

p 指向的对象的值: 3.

p's address is : 0x7fff5bce5a90.

q's value is: 0x7fff5bce5a90.

q 指向的指针的值: 0x7fff5bce5a9c.

q 指向的指针指向的对象的值: 3.


实际上就是说:

a == *p == **q; 

&a == p == *q;

&p = q;


ID:qpa
地址:&q   &p&a
值:&p   &a  3

                 


                   

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI