C语言中的多级指针

编程入门 行业动态 更新时间:2024-10-04 23:29:29

C语言中的多级<a href=https://www.elefans.com/category/jswz/34/1766023.html style=指针"/>

C语言中的多级指针

多级指针:

int main(){//指针数组里面元素存储的是指针int a[] = {1, 2, 3};int b[] = {4, 5, 6};int c[] = {7, 8, 9};//指针数组是一个特殊的二维数组模型//指针数组对应于二级指针int *arr[] = {a, b, c};//指针数组和二级指针建立关系int **p = arr;//arr[0][0] a[0]printf("%d\n", **p);//二级指针加偏移量 相当于跳过了一个一维数组大小// printf("%d\n",**(p+1));//打印b数组的第一个元素//一级指针加偏移量 相当于跳过了一个元素printf("%d\n", *((*p +1)));//打印a数组第二个元素printf("%d\n", *(*(p+1)+1));//打印b数组的第二个元素for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){//三种方式都是打印三个数组里的所有元素printf("%d ", p[i][j]); printf("%d ", *(p[i]+j));printf("%d ", *(*(p+i)+j));}puts("");}}

 

int main(){int a = 10;int b = 20;int *p = &a;int **pp = &p;int ***ppp = &pp;//*ppp == pp == &p//**ppp == *pp == p == &a;//***ppp == **pp ==*p ==a;//**pp = &b;//等价于p = &b//不懂就用下面注释正推或者反推//pp 二级指针的值 //*pp 二级指针的地址 //**pp 一级指针的值//所以这里的p就相当于&b**pp = 100;printf("%d\n", *p);//100printf("%d\n", a);//100return 0;
}

 C语言中的*和&

int main(){//定义变量a = 10;int a = 10;//猜想 既然*能加多个 那么&是否能加多个呢?//***p是三级指针,应该对应二级指针地址 &a为一级指针 那么&&&a是不是就为三级指针呢?//如下式子 int ***p = &&&a;//err//结论:不能,报语法错误,指向的地址没有储存,缺少了中间相关联的媒介 不能有多个&}

更多推荐

C语言中的多级指针

本文发布于:2024-02-28 05:31:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768268.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指针   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!