C语言 函数理解(以数组做参数)

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