void?funa(int?*x?,?int?*y){????int?t?=?*x;????*x?=?*y;????*y?=?t;}代碼是這樣的 ? ? ? ?這樣的一個函數(shù)體里面 ?可以理解是 ?交換兩個變量的地址對嗎? ? 但是怎么把值返回main()呢?funa()里面的參數(shù)作用域不就只能在它自己的函數(shù)體嗎? 出了這個函數(shù)它就找不到了啊?
2 回答

快樂的時光
TA貢獻79條經(jīng)驗 獲得超48個贊
int a=3,b=5;
funa(&a,&b);
這里設置兩個變量,a,b,分別為3和5;
執(zhí)行funa函數(shù),把內(nèi)存里變量a和b的地址傳給參數(shù),
即*x = &a,*y = &b; 此時指針x,y分別指向內(nèi)存a和b的空間。
所以在函數(shù)funa里面交換*x,*y的值便是在內(nèi)存中交換a,b的值。
funa里面的參數(shù)作用域是直接在內(nèi)存當中進行操作。主要是因為它的參數(shù)是指針形式。作用于就是在內(nèi)存當中,不受函數(shù)作用域影響。
- 2 回答
- 0 關注
- 2147 瀏覽
添加回答
舉報
0/150
提交
取消