C语言函数传递数组和传递地址的区别你知道吗

传递数值

code:

#include 
void deliveryData(int data)
{
	data = data + 100;
	printf("deliveryData:data=%d\n", data);
}
int main(void)
{
	int data=10;
	deliveryData(data);
	printf("main:data=%d\n", data);
	return 0;
}

运行结果:

C:\Users\Administrator\Desktop\C_Study\新版本c语言\程序\unit5_function>a.exe
deliveryData:data=110
main:data=10

传递地址

code:

#include 
void deliveryData(int data[])//这里int data[]是地址(相当于指针)
{
	data[0] = data[0] + 100;
	printf("deliveryData:data=%d\n", data[0]);
}
int main(void)
{
	int data[2]={1, 2};
	deliveryData(data);//这里传递的是地址
	printf("main:data=%d\n", data[0]);
	return 0;
}

运行结果:

C:\Users\Administrator\Desktop\C_Study\新版本c语言\程序\unit5_function>a.exe
deliveryData:data=101
main:data=101

注:

传递数值,操作的是不同的内存空间传递地址,操作的是同个内存空间

总结

本篇文章就到这里了,希望能够给你带来帮助也希望您能够多多关注脚本之家的更多内容!

你可能感兴趣的