void main()
{
typedef int(MyArrayType)[5]; //本身相当于一级指针 数组嘛 给5个int的内存 起了一个MyArrayType的别名 int[5]本身就是一种数据类型
int i = 0;
//MyArrayType myArray;// 等价于 int myArray[5]; //用类型定义变量
MyArrayType*pArray;//二级指针 //等价于 int* myArray[5]; //定义一个指针变量 这个指针变量 指向一个数组 (指向一块内存)
{
int a;
int* p = NULL;
p = &a;
}
{
MyArrayType myArray1;
MyArrayType*pArray1 = NULL;
pArray1 = &myArray1;
}
{
int myArray2[5]; //相当于一级指针
pArray = &myArray2;//相当于二级指针
for (i = 0; i < 5; i++)
{
(*pArray)[i] = i + 1;
}
for (i = 0; i < 5; i++)
{
printf("%d",(*pArray)[i]); //(*pArray)一级指针 (*pArray)[i]对一级指针指向内存空间操作
}
}
printf("\nhehhe");
system("pause");
return;
}
方法2: 用数组指针类型:
void main()
{
int i = 0;
//声明一个数组指针类型
typedef int (*pMyArrayType)[5]; //给5个int*内存起了一个别名 数据类型就是固定内存块大小的别名
pMyArrayType pArray;//告诉编译器 给我分配一个指针变量 这个指针变量可以指向5个int*内存空间
int c[5];
pArray = &c;
for (i = 0; i < 5; i++)
{
for (i = 0; i < 5; i++)
{
(*pArray)[i] = i + 1;
}
for (i = 0; i < 5; i++)
{
printf("%d", (*pArray)[i]);
}
}
printf("\nhehhe");
system("pause");
return;
}
方法3:直接定义数组指针变量:
//前两种都是通过类型定义变量的 先定义类型 在定义变量
void main15()
{
int i = 0;
//直接定义一个指向数组的 数组指针变量
int(*pArray)[5];//定义一个指针变量 这个指针指向了一个数组 *pArray是一个指针 这个指针可以指向 5个int大小的内存块
int c[5];
pArray = &c;
for (i = 0; i < 5; i++)
{
for (i = 0; i < 5; i++)
{
(*pArray)[i] = i + 1;
}
for (i = 0; i < 5; i++)
{
printf("%d", (*pArray)[i]);
}
}
printf("\nhehhe");
system("pause");
return;
}