文档介绍
8.3通过指针引用数组 复习:一维数组在内存中的存放方法? 如何用一个指针变量将数组中的元素取出并显示出来? 8.3通过指针引用数组 8.3.1指向数组元素的指针 8.3.2在引用数组元素时指针的运算 8.3.3通过指针引用数组元素 8.3.4用数组名作函数参数 8.3.5通过指针引用多维数组 8.3.1指向数组元素的指针 若int a[10]={1,2,3,4,5,6,7,8,9,10}; int * p=&a[0];(等价于int * p=a;) 8.3.2在引用数组元素时指针的运算 若int a[10]={1,2,3,4,5,6,7,8,9,10}; int * p=&a[0];(等价于int * p=a;) 1)若执行 printf(“%u\n”,p);输出为2000 则再执行 p++; printf(“%u\n”,p); 输出结果为? 2)若执行printf(“%u,%u”,p,p+1);输出结果为? 8.3.3通过指针引用数组元素 例8.5输出数组中的全部元素。 方法1:下标法 方法2:通过数组名计算数组元素地址,找出元素的值 方法3:用指针变量指向数组元素。p++; 总结 int a[10],*p=a; 表示元素: 下标表示法:a[i] p[i] 指针表示法:*(a+i) *(p+i) 表示地址: p+i a+i &a[i] &p[i] 注意 可以指针变量++,但不能数组名++ 注意指针变量的当前值。 *p++等价于*(p++); 不同于(*p)++ 如果p当前指向a数组第i个元素,则: *(p--) *(++p) *(--p) 8.3.4用数组名作函数参数--系统按指针变量处理 void sort(int arr[],int n) 等价于 void sort(int *arr,int n) 实参数组名是一个固定的地址 形参数