#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int run(int *p){ //p也是一个指针,传递到是地址(函数传参是复制机制--数组例外,所以是复制一个指针变量,把地址当作值赋给p) printf(" p的大小是%d", sizeof(p));//结果是4 printf(" a[1]=%d", *(p + 1)); return 0; } int run2(int p[5]){//对于形参数组,当数组当作函数参数的时候会退化为指针 printf(" 形参数组p的大小是%d", sizeof(p));//结果是4 printf(" 形参数组p[1]=%d", p[1]); return 0; } void main(){ int a[5] = { 1, 2, 3, 4, 5 }; //a是数组第一个元素的指针 printf("数组a的大小是%d", sizeof(a)); //但是sizeof(a)的大小却是20, run(a); run2(a); //这里说明指针a是一个很特殊指针 system("pause"); }