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

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