一,指针数组和数组指针(伟大的华清牟老师上课笔记)
什么是指针?
存放地址的变量。
指针变量只能存放地址,地址也只能存在指针变量中。
地址有两种运算:
偏移:+ -
```
int a;
printf("%p %pn", &a, &a+1);//差4个字节,因为是整型的地址。
```
间接:* 单目运算 ,间接运算的运算的对象只能是地址。间接运算得到的结果是地址对应的对象本身,不是数值。绝大部分情况下运算得到的都是变量。我们能得到的常量的地址只有字符串常量。
```
int a;
*&a;//&a运算得到a的地址,*&a对a的地址进行间接运算,得到变量a本身。
*&a = 10;/
printf("%dn", **(p+i));
}
return 0;
}
```
### 示例2:

```C
#include
int main()
{
int a[5] = {1,2,3,4,90};
int b[5] = {55,6,7,8,9};
int c[5] = {7,8,7,8,6};
int *p[3] = {a,b,c};//指针数组的三个元素分别指向3个int类型的数组
int i,x;
for(x=0; x<3; x++)//遍历数组p
{
for(i=0; i<5; i++)
{
printf("%d ", p[x][i]);
printf("%d ", *(*(p+x)+i));
}
printf("n");
}
}
```



