1.整数形参:
形式参数的data,取的是main()函数的值,而不是地址,形参有自己的地址,所以影响不了main函数下的data值
#include<stdio.h>
void getData(int data)//形式参数的data,取的是main()函数的值,而不是地址,
//形参有自己的地址,所以影响不了main函数下的data值
{
data=data+100;
printf("getData()函数的data=%d\n",data);
}
int main()
{
int data=10;
getData(data);
printf("main()函数的data=%d\n",data);
return 0;
}
结果输出:
2.数组形参
为什么两个函数的data值都是103
因为形参取的是数组的地址,如果改变了这个地址的值,那两个函数都会受到影
#include<stdio.h>
void getDataArray(int data[])//为什么两个函数的data值都是103,
//因为形参取的是数组的地址,如果改变了这个地址的值,那两个函数都会受到影
{
data[0]=data[0]+100;
printf("getDataArray函数的data[0]=%d\n",data[0]);
}
int main()
{
int data[5]={3,4,5,2,324};
//int len =sizeof(data)/sizeof(data[0]);//给出数组的长度
getDataArray(&data[0]);
printf("main()函数的data[0]=%d\n",data[0]);
return 0;
}
输出:
总结
被调函数的形参取的main()函数的值还是地址,取决于形参是数组还是字符