指針數(shù)組
int *a[10];//sizeof(a) sizeof(a[0])
short* a[10]
二級指針
指向一級指針的地址
int **pp=&p;
*pp=10;//p變成一個野指針
圖示說明
image.png
int a=10;
int *p=&a;//
int **pp=NULL;
pp=&p;
*pp=*pp+1;//
printf("%p %p %d\n",p,*pp,*p);
getchar();
結(jié)論:
一級指針和變量a的地址都沒有變化任连,只是通過*pp改變了p的指向,結(jié)合數(shù)組分析。
指向二維數(shù)組的指針
char arr[2][10]={{"hello"},{"world"}};
char **pp=NULL;
pp=arr;
指針與二維數(shù)組
1厕隧、 a+1 指向的是第一行的元素初坠,也就是指向一個一維數(shù)組
2、 a[1] 指向的是第一行凳枝,第0列的元素的地址
3、 *(a+1) 指向的是第一行跋核,第0列的元素的地址
4岖瑰、 a[1]+2 指向的是第一行的第二列的元素的地址
5叛买、 *(a+1)+2 指向的是第一行的第二列的元素的地址
6、 *(a[1]+2) 指向的是第一行的第二列的元素
7蹋订、 ((a+1)+2) 指向的是第一行的第二列的元素
注意:
二位數(shù)組的名字代表的是二級指針聪全;
[]可以等同理解為解引用(類似于* 的解引用的方式)