C语言问题,希望能有解释 谢谢

2025年03月01日 10:50
有3个网友回答
网友(1):

第一个是局部参数。在viod里X和Y的对调了,但是你没有返回值。所以响影不到主函数里的值。

第二个在自定义函数里改变了所属函数的地址,也就是数组地址。所以直接改变了数组值

网友(2):

第一个是值传递,x,y只是a,b的拷贝,对x,y的修改影响不到a,b
第二个传递了3,5所属变量的地址,因此修改的是它们本身

网友(3):

第一个,X,Y的值给了a,b,在内存里a是a,X是X不是一块内存.所以只交换了a,b得内存,X,Y的内存值并没变.
第二个,数组的名称就是数组的首地址。所以a,a+1传给swap1的是变量的首地址的拷贝,拷贝后都是指向的同一个内存,即对同一块内存在操作。地址指向的变量交换后,a[0],a[1]值也就交换了。

一定要有内存的概念:)