#include <stdio.h> /* 1.数组元素的访问方式 int ages[5]; int *p; p = ages; 1> 数组名[下标] ages 2> 指针变量名[下标] p 3> *(p + i) 2.指针变量+1,地址值究竟加多少,取决于指针的类型 int * 4 char * 1 double * 8 */ void change(int array[]); int main() { // 20个字节 int ages[5] = {10, 11, 19, 78, 67}; change(ages); return 0; } // 利用一个指针来接收一个数组,指针变量array指向了数组的首元素 void change(int *array) { printf("%d\n", array[2]); //printf("%d\n", *(array+2)); } /* void change(int array[]) { int s = sizeof(array); printf("%d\n", s); }*/ void test() { double d = 10.8; double *dp; dp = &d; printf("dp = %p\n", dp); printf("dp + 1 = %p\n", dp + 1); int ages[5] = {10, 9, 8, 67, 56}; int *p; // 指针变量p指向了数组的首元素 p = &ages[0]; // 数组名就是数组的地址,也是数组首元素的地址 //p = ages; /* p ---> &ages[0] p + 1 ---> &ages[1] p + 2 ---> &ages[2] p + i ---> &ages */ //printf("%d\n", *(p+2)); printf("%d\n", p[2]); /* for (int i = 0; i<5; i++) { printf("ages[%d] = %d\n", i, *(p+i)); }*/ // printf("%p\n", p); // printf("%p\n", p + 1); // printf("%p\n", p + 2); } |