/* 数组元素的访问方式 1、数组名[下标] 2、指针量名[下标] 3、*(p+i) p+1,指针+1,则指针指向的地址加4 */ #include "stdafx.h" void changeNum(int *array); int main(int argc, char* argv[]) { int ages[] = {10, 20, 30, 40}; int *p = &ages[0];//指针指向数组的首地址 printf("%d\n", *p);//输出10 printf("%d\n", *(p+1));//输出20 int *p1 = ages;//p1指向10的地址,由此可见,此赋值与int *p = &ages[0]相等 printf("%d\n", *p1);//输出10 changeNum(ages); int s1 = sizeof(p); printf("int类型指针大小%d\n", s1);//输出4 double *p2; int s2 = sizeof(p2); printf("double类型指针大小%d\n", s2);//输出4 char *p3; int s3 = sizeof(p3); printf("char类型指针大小%d\n", s3);//输出4 //由此可见,3种类型的指针,大小都为4 return 0; } void changeNum(int *array) { int s = sizeof(array); printf("%d\n", s);//输出4,也就是说,不管多大的数组传递过来,都变成了指针传递 printf("%d\n", *array);//得到数组的第一位,因为指针指向数组的首地址 }