Download presentation
Presentation is loading. Please wait.
Published byΝύξ Ασπάσιος Modified 5年之前
1
本节内容 指针数组与数组指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
2
char* arr[10]; //10 指针 (char*) Point* arr[10]; //10 指针 (Point*)
昆山爱达人信息技术有限公司 QQ: 1、指针数组的定义 char arr[10]; //10 char char* arr[10]; //10 指针 (char*) Point* arr[10]; //10 指针 (Point*) int*********** arr[10]; //10 指针(int***********)
3
<1> char* arr[2] = {a,b}; <2> char* arr[2]; arr[0] = a;
昆山爱达人信息技术有限公司 QQ: 2、指针数组的赋值 char* a = "Hello"; char* b = "编程达人"; <1> char* arr[2] = {a,b}; <2> char* arr[2]; arr[0] = a; arr[1] = b; <3> char* arr[2] = { "Hello", "编程达人" };
4
Point* arrPoint[10]; //4*10字节
昆山爱达人信息技术有限公司 QQ: 3、结构体指针数组 struct Point { int x; int y; }; Point p; //8字节 Point arr[10]; //8*10字节 Point* arrPoint[10]; //4*10字节
5
4、分析下面的代码: int arr[] = {1,2,3,4,5,6,7,8,9,0}; int* p = &arr[0];
昆山爱达人信息技术有限公司 QQ: 4、分析下面的代码: int arr[] = {1,2,3,4,5,6,7,8,9,0}; int* p = &arr[0]; int* p = arr; int* p = &arr; //什么情况?
6
int(*px)[2][2]; //二维数组指针 char(*px)[3][3][3]; //三维数组指针
昆山爱达人信息技术有限公司 QQ: 5、数组指针的定义 int(*px) [5]; //一维数组指针 char(*px) [3]; int(*px)[2][2]; //二维数组指针 char(*px)[3][3][3]; //三维数组指针 思考题: int *p[5] 与 int (*p)[5] 有什么区别?
7
int(*px3) [2][2]; //二维数组指针 char(*px4) [3][3][3]; //三纬数组指针
昆山爱达人信息技术有限公司 QQ: 6、数组指针的宽度与赋值 int(*px1) [5]; //一维数组指针 char(*px2) [3]; int(*px3) [2][2]; //二维数组指针 char(*px4) [3][3][3]; //三纬数组指针 printf("%d %d %d %d \n",sizeof(px1),sizeof(px2),sizeof(px3),sizeof(px4)); px1 = (int (*)[5])1; px2 = (char (*)[3])2; px3 = (int (*)[2][2])3; px4 = (char (*)[3][3][3])4;
8
int(*px3) [2][2]; //二维数组指针 char(*px4) [3][3][3]; //三纬数组指针
昆山爱达人信息技术有限公司 QQ: 7、数组指针的运算 int(*px1) [5]; //一维数组指针 char(*px2) [3]; int(*px3) [2][2]; //二维数组指针 char(*px4) [3][3][3]; //三纬数组指针 px1 = (int (*)[5])1; px2 = (char (*)[3])1; px3 = (int (*)[2][2])1; px4 = (char (*)[3][3][3])1; px1++;px2++;px3++;px4++; printf("%d %d %d %d \n",px1,px2,px3,px4);
9
printf("%d %d \n",(*px)[0],px[0][0]);
昆山爱达人信息技术有限公司 QQ: 8、数组指针的使用 int arr[] = {1,2,3,4,5,6,7,8,9,0}; int(*px)[10] = &arr; //*px 是什么类型? printf("%d %d \n",(*px)[0],px[0][0]);
10
printf("%d %d \n",(*px)[0],px[0][0]);
昆山爱达人信息技术有限公司 QQ: 9、数组指针的使用 int arr[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} }; int(*px)[3] = &arr[0]; px++; printf("%d %d \n",(*px)[0],px[0][0]);
11
int(*px)[2][2] = (int (*)[2][2])arr; 思考题: 1、*px是什么类型?
昆山爱达人信息技术有限公司 QQ: 10、二维数组指针可以访问一维数组吗? int arr[] = {1,2,3,4,5,6,7,8,9,0}; int(*px)[2][2] = (int (*)[2][2])arr; 思考题: 1、*px是什么类型? 2、(*px)[1][1]的值是什么?px[0][1][1]的值是什么?
12
<汇编、C/C++线上班>学员可见
昆山爱达人信息技术有限公司 QQ: 课后练习: <汇编、C/C++线上班>学员可见
Similar presentations