指针与数组_数组指针
2017-12-01 16:35
239 查看
数组指针:即指向数组的指针
定义数组指针:int (*q)[4];//q为一个数组指针变量,指向每一行有四个整形元素的数组。
这两篇文章还可以:https://www.cnblogs.com/mq0036/p/3382732.html,http://blog.csdn.net/touch_2011/article/details/6966980
整形指针和数组指针指向二维数组的区别:
未完待续。。。
定义数组指针:int (*q)[4];//q为一个数组指针变量,指向每一行有四个整形元素的数组。
这两篇文章还可以:https://www.cnblogs.com/mq0036/p/3382732.html,http://blog.csdn.net/touch_2011/article/details/6966980
整形指针和数组指针指向二维数组的区别:
#include<stdio.h> int main() { int a[2][4] = { {1,2,3,4},{5,6,7,8} }; int *p = a; int(*q)[4] = a;//a的类型为int (*)[4],&a的类型为int (*)[2][4],a表示数组第一个元素的地址,&a表示整个数组的首地址 printf("%d\n", *(p + 1));//输出2,注意整形指针和数组指针指向二维数组的区别 printf("%d\n", **(q + 1));//输出5 printf("%d\n", q[1][0]);//输出5 return 0; }
#include<stdio.h> int main() { int a[2][4] = { {1,2,3,4},{5,6,7,8} }; printf("a的地址为%p\n", a); printf("a[0]的地址为%p\n", &a[0]); printf("a[0]的值为%p\n", a[0]); printf("*a的值为%p\n", *a);//a的元素为a[0]和a[1],*a就相当于a[0] printf("a[0][1]=%d\n", *(a[0] + 1));//2,注意a[0]是数组a第一行的首地址 printf("a[0][1]=%d\n", *(*a + 1));//2 printf("a[1][0]=%d\n", *a[1]);//5,a[1]是数组a第二行的首地址 printf("a[1][0]=%d\n", **(a + 1));//5 int(*p)[4] = a;//这时候p就和a一样,上面的a都可以改为p。 return 0; }
未完待续。。。
相关文章推荐
- 数组指针与指针数组的区别
- 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
- C++中new和delete在数组指针和指针数组中的调用
- 指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针之间的区别
- Thinking in C++: 指针数组与数组指针
- c/c++ 指针数组 和 数组指针
- 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- typedef的学习 数组指针与指针数组的差异
- 指针数组 数组指针
- 29.指针数组和数组指针
- [转] 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
- 数组,指针数组,数组指针,函数指针数组,函数指针数组的指针
- 数组指针和指针数组的区别
- 易混淆概念(一)指针数组与数组指针
- 彻底了解指针数组,数组指针,以及函数指针 .
- 指针数组和数组指针
- 关于如何区分数组指针和指针数组
- C++ 指针数组与数组指针汇总