关于指针的一些理解-创新互联
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: | q | p | a |
地址: | &q | &p | &a |
值: | &p | &a | 3 |
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
分享文章:关于指针的一些理解-创新互联
当前地址:http://scyanting.com/article/ddhpdo.html