1.指针数组得定义
char arr[10]; // 10个char char* arr[10]; //10个指针(char*) Point* arr[10]; //10个指针(Point*) int arr[10]; //10指针(int*)
2.指针数组得赋值 char *a=“Hello” //*a=‘H’ *(a+1)=‘e’ (a+2)=l char b=“编程达人”; //*b=‘编’ *(b+2)=达
(1)char* arr[2]={a,b};
(2)char * arr[2]; arr[0]=‘a’; arr[1]=‘b’;
(3)char *arr[2]={“Hello”,“编程达人”}
3.结构体指针数组 struct Point { int x; int y; } Popint p; //8字节 Point arr[10]; //810字节 Point arrPoint[10]; //4*10字节
4.分析下面代码: int arr[]={1,2,3,4,5,6,7,8,9,0};
int *p=&arr[0]; // *p=1 p=arr[0]得地址
int *p=arr; arr==arr[0]
int p=&arr; 什么情况? int p=(int)&arr //int()[10]数组指针
5.数组指针得定义 int(*px)[5]; //一维数组指针 char(*px) [3];
int(*px)[2][2]; //二维数组指针
char(*px)[3]3[3];//三维数组指针
思考题:int *p[5]与int(*p)[5]有什么区别?
数组指针不理解到时再说