-
数组的赋值:数组中未赋值的元素默认为0,适用于一维和二维数组
-
数组的访问:①地址+[ 序号 ] ② *地址
数组下标实际上是每个元素的地址相对于第一个元素地址的偏移量
*
起到降维作用,从二维到一维 理解一下*(*(a+1)+1)
代表的含义 -
一维数组和二维数组中数组名arr代表的含义
int arr[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int *p = arr[0]; int (*ptr)[4] = (arr+1); cout<<*(p+9)<<endl; cout<<(*ptr+1)[1]<<endl; cout<<*(*(a+2)+1)<<endl; return 1;
结果为: 10 7 10
第二问中
(*ptr + 1)[1] = 7, (*ptr + 1)[0] = 6
arr代表二维地址,p指向arr[0]代表一维地址 -
二维数组中
int a[2][3]; // 定义一个数组 int (*p)[3] = a; // 使指针p指向了二维地址a,因此p[0] = a,p[1] = a+1,
后续可以使用
a[0][i]
以及p[0][j]
来对数组进行操作 -
关于typedef的用法
typedef int zhengshu; // 给int取别名 typedef struct student{ int arr1[10]; char arr2[10]; …… }stu; // 给struct student取别名stu
C语言学习------二级指针
于 2024-03-04 10:22:46 首次发布