53-1 二级指针
53-1-1 回顾一级指针
代码:
int main()
{
int a = 10;
int* pa = &a; //pa是一个指针变量,是一级指针变量
*pa = 20;
printf("%d\n", a);
return 0;
}
结果:
53-1-2 通过一级指针理解二级指针
代码:
int main()
{
int a = 10;
int* pa = &a; //pa是一个指针变量,是一级指针变量
int** ppa = &pa; //ppa是一个二级变量
**ppa = 30;
printf("%d\n", a);
return 0;
}
结果:
图解1:
图解2:
53-2 指针数组
存放指针的数组就是指针数组
int main()
{
int a = 10;
int b = 20;
int c = 30;
//int arr[10];
//int* pa = &a;
//int* pb = &b;
//int* pc = &c;
//parr就是存放指针的数组
//指针数组
int* parr[10] = { &a,&b,&c };
return 0;
53-2-1 利用指针数组赋值/打印
代码:
int main()
{
int a = 10;
int b = 20;
int c = 30;
//int arr[10];
//int* pa = &a;
//int* pb = &b;
//int* pc = &c;
//parr就是存放指针的数组
//指针数组
int* parr[10] = { &a,&b,&c };
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%d ", *(parr[i]));
}
return 0;
}
结果:
53-2-1 模拟二维数组
代码:
int main()
{
int arr1[4] = { 1,2,3,4 };
int arr2[4] = { 5,6,7,8 };
int arr3[4] = { 9,10,11,12 };
int* parr[3] = { arr1,arr2,arr3 };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("%d ", parr[i][j]);
}
printf("\n");
}
return 0;
}
结果: