c语言中的 int (*p)[5] 类型分析
来源:互联网 发布:linux sftp 指定端口 编辑:程序博客网 时间:2024/06/10 19:14
#include<stdio.h>
int main()
{
int i;
int b[5]={1,3,5,7,9};
int (*a)[5] = &b;
int *m = a; //a范围内的空间按照 int大小来取值
for(i = 0;i<5;i++)
{
printf("%d\n",m[i]);
}
return 0;
int main()
{
int i;
int b[5]={1,3,5,7,9};
int (*a)[5] = &b;
int *m = a; //a范围内的空间按照 int大小来取值
for(i = 0;i<5;i++)
{
printf("%d\n",m[i]);
}
return 0;
}
输出结果为 1 2 3 4 5
其中 int (*a)[5] 表示在栈中产生一个大小为 5个int的空间 a代表的的是整个空间的首地址
int *m = a;定义的是它的取值偏移量,也就是说一个整形指针*m 首地址为开辟的a的空间的首地址
为更好分析下面的程序就能让你更能懂了:
#include<stdio.h>
int main()
{
int i;
short b[5]={1,3,5,7,9};
int (*a)[5] = &b;
short *m = a; //a范围内的空间按照 int大小来取值
for(i = 0;i<5;i++)
{
printf("%d\n",m[i]);
}
return 0;
}
输出结果为 :1 2 3 4 5
由(*a)[5]产生一个空间大小为5个int的空间,空间的首地址和数组的首地址相同,只是一个空间而已没有定义其取值方式,由short *m = a;表示取其空间大小为short的类型,这个类型和int (*a)[5]没有关系,int (*a)[5]值负责产生空间,没有类型,有点类似于malloc 函数。
仔细推敲有助于深入理解。
0 0
- c语言中的 int (*p)[5] 类型分析
- C语言中的int类型
- int (*p)[5]分析
- C语言指针 int *p[10] int (*p)[10] int *p(int) int (*p)(int) 区别与举例
- 指针问题:C语言中 int*p[4] 和 int(*p)[4]的区别 等等
- C语言中的%p
- C语言中的指针(*p p &p)
- int **p 、int (*p)() 、 int (*p)[5] 和int (**p)()
- 【C语言】*++p,*p++,++*p,++*++p,++*p++
- c语言中int *p[4]和 int (*)p[4]区别
- C语言中的类型
- C语言(int&)
- c语言中 int类型等
- c语言指针与int类型相加
- C语言强制类型转换 int ->float
- 理解c语言中的constant*() &p()[] *p[56]的语法的难点 const
- C语言中的"%p"格式解释
- C语言中的int类型的范围是由什么决定的
- EOF女神的相反数
- 关于R.java中的数组问题
- Linux(ubuntu)下30天自制os学习引导,第2天(gas汇编语言)
- C++11 现代C++风格的新元素
- 喜忧参半wxWidgets——求大神
- c语言中的 int (*p)[5] 类型分析
- 大型网站技术架构(二)--架构模式
- OOP面向对象的编程思想
- 假如记忆可以移植
- 分支-05. 用天平找小球(10)
- Attribute is missing the Android namespace prefix
- 分支-06. 成绩转换(15)
- C\C++代码优化的27个建议
- 国度假租赁平台Vive Unique获风投Smedvig Capital的590万美元