<font color="#e74f4c">数组指针</font><br>
<font color="#e74f4c">int a[2][2] = {{1,2},{3,4}};<br>printf("%p %p %p %p\n",a,a+1,a[1],&a[1]);<br>a+1 和 &a[1] 一样</font><br>
<font color="#e74f4c">指针数组:指针的数组,...的(不重要) 后面的重要,则实际上是数组<br>数组指针:数组的指针,...的不重要,所以实际上是指针<br>指针数组中可以用数组指针进行取值</font><br>
【1】大小端<br>
大端:在低地址存储高字节数据,高地址存储低字节数据<br>小端:在低地址存储低字节数据,在高地址存储高字节数据<br>
【2】二级指针
概念:二级指针是用来存储一级指针的地址<br>格式:存储类型 数据类型 **指针变量;<br>int a=10;<br>int *p=&a;<br>int **q=&p;<br>
【3】指针和数组<br>
1.指针和一维数组<br>
二维数组
<font color="#e74f4c">有两种方式:两个*或者一个*和[]</font>
指针数组<br>
存放普通变量的地址
int a=10,b=20,c=30;<br>int *p[3]={&a,&b,&c};<br>访问b的值:*p[1] *( *(p+1))<br>访问c的地址:*(p+2) p[2]<br>
可以存放二维数组的地址<br>
存放二维数组的每一行的首地址<br>int a[2][3]={1,2,3,4,5,6};<br>int *p[2]={a[0],a[1]};<br>访问a[1][2]的值:*(p[1]+2) *(*(p+1)+2)<br>访问a[1][2]的地址:p[1]+2 *(p+1)+2<br>
可以存放字符串
char *p[3]={"hello","world","hqyj"};<br>访问hello字符串:%s格式 : p[0] *(p+0)<br>访问e字符: %c格式:*(p[0]+1) p[0][1]<br>
<font color="#e74f4c">main的形参</font>