int main()
{
int i = 0;
int b[10];
printf("%d,%d\n",b,&b);// a 为数组的首地址 步长为数组的一个单位长度
printf("%d,%d\n",b+1,&b+1);//&a代表整个数组的地址 步长为整个数组的长度
//声明一个数组指针类型
typedef int(*MyPointer)[10];
//用数组指针类型,去定义一个变量
MyPointer mypoint;
mypoint = &b;
for (i = 0; i<10; i++)
{
(*mypoint)[i] = i;
}
//直接声明一个数组指针变量
int(*pointer)[10] = &b;
for (i = 0; i<10; i++)
{
(*pointer)[i] = i;
}
int a[3][10];
printf("%d,%d\n",a,a+1);//b是一个数组指针 ,指向低维的数组 步长为低维数组的长度
system("pause");
return 0;
}
另附二级指针三种类型内存图:
附符号优先级表:
本文详细解析了C语言中数组和指针的基本概念、操作方式及内存分配原理,通过实例演示如何安全有效地使用数组和指针进行数据处理。
13万+

被折叠的 条评论
为什么被折叠?



