1樓:暢景彰
你可以仔細再看看函式形參和實參部分的c語言知識,因為你這裡的a和b只是把值傳遞給了change函式的x和y變數,但是在change函式結束一次呼叫以後,x和y的記憶體就自動釋放了,所以對x和y的值操作不會反應在a和b上,如果要改變值的話,可以用如下程式
#include
void change(int *x,int *y);
main(void)
void change(int *x,int *y)這樣把x和y的記憶體空間地址直接傳遞給函式,那麼就等於直接對記憶體空間的資料操作了
2樓:匿名使用者
1.void change(int &x,int %y)呼叫不變
或者2.
void change(int *x,int *y)呼叫的時候change(&a,&b)
3樓:匿名使用者
這應該是值傳遞的問題。。。可用引用傳遞。
#include
void change(int &x,int &y);
main(void)
void change(int &x,int &y)好久沒玩c和c++了。。。不知道行不行,貌似還可以用址傳遞。
4樓:匿名使用者
你把change函式的引數變為(int &x,int &y),你試試;
原因:引數傳遞的方式有傳值方式,有傳地址方式;
二種方式的區別是:第一個不會改變傳入引數的值,而第二種方式會。
所以你寫的這種方式是第一種,不會改變x,y的值。
5樓:誰讓我揩油
因為啊,change(int x,int y)裡的x y 是形參而且是值傳遞,即僅僅是將a,b的值傳給了x y 對於a b本身沒有改變。要想改變a b 就得使用change(int *x,int *y)
6樓:匿名使用者
要用指標或者引用,就是void change(int *x,int *y)或者void change(int &x,int &y).
7樓:匿名使用者
你把引數傳入函式之後卻沒有把結果返回。有多種解決方法,但最簡單的是把printf("%d,%d",a,b);放到change函式最後,就解決問題啦!其他方法:
1、重新宣告change函式,把引數改為數值的地址;2、改變change函式的返回型別,最後在主函式裡返回操作的兩個數,那要用到陣列。
c語言程式設計,C語言程式設計
int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計 判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計。else 非字母 switch read buf brea...
C 程式設計題目,C 程式設計題
teacher.h ifndef class teacher define class teacher include include include using namespace std 所有教師的父類 class teacher count為課時的數目 private int salary 固...
C 程式設計問題,C 程式設計問題
include using namespace std void circle void else break while 1 return 0 c 程式設計,出現2 個無法解析的外部命令,怎麼回事?client.h ifndef client define client include inclu...