C语言基础语法第六章指针 demo21_二级指针和二维数组的避坑指南
二级指针不能简单粗暴指向二维数组
#include <stdio.h>
int main()
{
int scores[3][4]={{22,33,44,55},{66,77,88,99},{100,98,97,96}};
int **p;
p=scores;
printf("scores:%p\n",scores);//scores:000000000061FDE0
printf("p:%p\n",p);//p:000000000061FDE0
//printf("*p: %p\n",*p); *p: 0000002100000016 *p是一个野指针,不是我们认为的会编程列地址
printf("*scores: %p\n",*scores);//*scores: 000000000061FDE0
//**p=100;
//printf("done\n");
//如何正确使用二维指针和二维数组
int **p3;
int (*p2)[4];//定义一个数组指针
p2 = scores;
p3 =&p2;
**p3=100;
printf("%d\n",scores[0][0]);
return 0;
}