本文目錄一覽:
- 1、C語言,第四題,為何輸出的值不變
- 2、求教 c語言為什嗎輸出的值沒有改變
- 3、C語言輸出結果不變
- 4、C語言,為何輸出C的內容不變,調用里不是把b都賦值給a了么
- 5、c語言題為什麼運行後輸出結果不變啊?
C語言,第四題,為何輸出的值不變
因為它傳遞的是a,b的地址,在函數p中對地址的改變並不會影響到main函數中變量的取值。
要想得到交換變量值的效果,函數p應該這樣寫:
void p(int *a,int *b)
{int t;
t=*a; *a=*b; *b=t;}
求教 c語言為什嗎輸出的值沒有改變
swap函數在執行時,函數內部的a和b只是你傳進去的參數的一個引用,即函數編譯完,系統重新定義了兩個指針變量(編譯器做的事),指向你傳進去的指針變量,你在函數里改變的是系統重新定義的兩個變量,你定義的兩個指針並沒有變,當然不會影響外面的輸出了。
C語言輸出結果不變
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int data, goal;
srand(time(NULL));
while (1) {
printf(“請輸入你猜的數字\n”);
scanf(“%d”, data);
goal = rand() % 100;
while (goal != data)
{
if (goal data)
{
printf(“Wrong,過大\n”);
}
else
{
printf(“Wrong,過小\n”);
}
scanf(“%d”, data);
}
if (data == goal)
{
printf(“Right\n”);
}
}
return 0;
}
C語言,為何輸出C的內容不變,調用里不是把b都賦值給a了么
f(c)的參數是值傳遞,不會改變c的值,調用f()函數的時候相當於是把c的內容複製了一份作為參數a傳遞給了f()函數,對c本身的內容並不會產生影響。
c語言題為什麼運行後輸出結果不變啊?
你的疑問應該是在f()函數中為什麼明明修改了結構體的值,但是實際的結構體確沒有改變。
這是由於c語言中的方法參數傳遞分為傳值引用(形參,在方法中修改的值只在方法中有效)和指針引用(實參,可以直接修改實際結構體或參數的值),而你問題中的代碼屬於形參傳遞,所以在main函數中打印的結果沒有變化。希望對你有用!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193160.html