欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C指针原理(15)-C指针基础

发布时间:2025/3/12 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C指针原理(15)-C指针基础 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

简单C指针

指向整数的指针,以及指针的指针

myhaspl@myhaspl:~ % vim test1.c#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);return 1;}

上面程序定义了一个int型的整数,然后定义了2个指针,1个是myp,另1个是mypp。

myp和mypp都是指针变量,但指向的内容是不同的,myp指向x的地址,mypp指向myp的地址,通过myp可以找到x,而通过mypp则不能立即找到x,mypp先找到myp,然后再通过myp找到x,因此,mypp也称为指针的指针。

myhaspl@myhaspl:~ % makecc test1.c -o mytestmyhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784myhaspl@myhaspl:~ %

通过解引用操作符*提取指针指向的内容。

myhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784*myp:128**mypp:128

代码为

#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);printf("*myp:%d\n",*myp);printf("**mypp:%u\n",**mypp);return 1;}

*myp提取的是x的内容

而**mypp提取的是也是x的内容

那么*mypp提取的内容什么呢

是myp指针变量本身的内容,即x的地址。

可修改上述程序验证一下

#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);printf("*myp:%d\n",*myp);printf("**mypp:%u\n",**mypp);printf("*mypp:%u-myp%u\n",*mypp,myp);return 1;}

程序执行结果:看最后1行

myhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784*myp:128**mypp:128*mypp:4294957796-myp4294957796myhaspl@myhaspl:~ %

总结

以上是生活随笔为你收集整理的C指针原理(15)-C指针基础的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。