#include <stdio.h>
int main()
{
void changeData(int data)//数值传递,操作的是不同的内存空间。
{
data=data+100;
printf("%p dataInfunc=%d\n",&data,data);
}
int data=10;
changeData(data);
printf("%p data= %d ",&data,data);
return 0;
}
#include <stdio.h>
int main()
{
void changeData(int data[])操作一定是相同的内存空间,数组名当做实参,到底传了什么(地址).
{
data[0]=data[0]+100;
printf("%p dataInfunc=%d\n",&data,data[0]);
}
int data[2]={10,20};
changeData(data);
printf("%p data= %d ",&data,data[0]);
return 0;
}
C语言,关于地址
于 2023-06-11 22:24:48 首次发布
文章通过两个C语言程序示例,展示了数值传递和数组作为参数时内存空间的变化。在函数`changeData`中,数值传递时操作的是数据的副本,而数组作为参数实际上是传递了数组首地址,因此函数内对数组元素的修改会影响到原始数组的值。
摘要由CSDN通过智能技术生成