[C] int *p[4]与int (*q)[4]的区别
来源:互联网 发布:淘宝饰品店铺 编辑:程序博客网 时间:2024/06/05 22:37
以上定义涉及两个运算符:“*”(间接引用)、“[]”(下标),“[]”的优先级别大于“*”的优先级别。
首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4];剩下的“int *”作为补充说明,即说明该数组的每一个元素为指向一个整型类型的指针。int *p[4]的存储结构如下:(存储方格横向排列或竖向排列没区别,只要按内存地址顺序排列就行,此处只是为画图方便)
再看int (*q)[4]。它首先是个指针,即*q,剩下的“int [4]”作为补充说明,即说明指针q指向一个长度为4的数组。int (*q)[4]的存储结构如下:
请看以下定义:
int a[2][4]={{2,5,6,8},{22,55,66,88}};
int c[4]={5,8,9,4};
int d[3]={23,12,443};
int *p[4],(*q)[4];
q=a;
*p=c;
*(p+1)=d;
则int *p[4]和int (*q)[4]的存储数据为:
首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4];剩下的“int *”作为补充说明,即说明该数组的每一个元素为指向一个整型类型的指针。int *p[4]的存储结构如下:(存储方格横向排列或竖向排列没区别,只要按内存地址顺序排列就行,此处只是为画图方便)
再看int (*q)[4]。它首先是个指针,即*q,剩下的“int [4]”作为补充说明,即说明指针q指向一个长度为4的数组。int (*q)[4]的存储结构如下:
请看以下定义:
int a[2][4]={{2,5,6,8},{22,55,66,88}};
int c[4]={5,8,9,4};
int d[3]={23,12,443};
int *p[4],(*q)[4];
q=a;
*p=c;
*(p+1)=d;
则int *p[4]和int (*q)[4]的存储数据为:
- [C] int *p[4]与int (*q)[4]的区别
- 【C/C++】int *p[4]与int (*q)[4]的区别
- int *p[4] 与 int (*q)[4] 区别
- int *p[4]和 int (*q)[4]的区别
- 关于int(*p)[4]与int *p[4]的区别
- int* p = new int[5](); 与 int* q = new int[5]; 的区别
- C语言,数组与指针:int (*)p[4]; int *q; int a[4]; int b[3][4];
- int* p 与 int** p的区别
- int *p[] 与int (*p)[] 的区别
- int *&p与int *P的区别
- C++中int *p[4]和 int (*q)[4]的区别
- C++中int *p[4]和 int (*q)[4]的区别
- C++中int *p[4]和 int (*q)[4]的区别
- C++中int *p[4]和 int (*q)[4]的区别
- C++中int *p[4]和 int (*q)[4]的区别 (指针数组和数组指针)
- int *p[4]; int p[4]; int **p; int *(p[4]); int (*p)[4]这5种的区别与联系
- typedef int * q与#define p int*区别
- C语言指针 int *p[10] int (*p)[10] int *p(int) int (*p)(int) 区别与举例
- excel 数字文本转换为纯数字
- core dump解析(2)
- Flex 调用父组件的父组件中的方法
- JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
- Linux和android下测试键盘和触摸屏
- [C] int *p[4]与int (*q)[4]的区别
- linux内核中的信号机制--信号发送
- Office2007"向程序发送命令时出现错误 "的问题
- windbg + winRT (WOA windows on ARM) kernel debug
- core dump解析(3)-配置与调试
- ListView虚拟模式加载数据 提高加载速度
- core dump解析(4)
- 删除Windows 7 C:/Users/用户名/AppData里面的文件
- OJ