課程
/后端開發
/C
/C語言入門
int fn1(int x)
{
????int y,z;
????z=2;y=x+z;
????……
}
這里fn1括號里的能把int y,int z加上去嗎?加上去了下面y和z是不是就不用再定義了
2017-07-28
源自:C語言入門 5-10
正在回答
括號里的形參是一個函數的入口, c語言里所有的形參都要對應的實參傳入.如定義int fn1(int x, int y,int z){......}
但是在調用的時候: fn1(2); ?這樣寫是不對的.這樣只有x得到賦值, 編譯器就會報錯.如果:fn1(1,2,3);這樣寫就一點問題都沒有, 這樣子就無需在函數體內再定義y,z. 因為形參表定義的變量也是屬于這個函數的局部變量.如果再在函數體中定義: int y,z; 編譯器就會報錯: redefine....(重復定義)
有興趣可以看下形參缺省, 在C++里形參是可以缺省的,即:聲明函數 int fn1(int x, int y=2, int z=3);
調用時; fn1(1); 賦值結果: x =1 ,y =2, z =3;
王之藐視
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答對例子的疑問
1 回答關于Switch語句例子代碼的疑問
1 回答關于例子的疑問
1 回答例題中代碼改成這樣子也對把?
2 回答對這個例子的自我理解
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-29
括號里的形參是一個函數的入口, c語言里所有的形參都要對應的實參傳入.如定義int fn1(int x, int y,int z){......}
但是在調用的時候: fn1(2); ?這樣寫是不對的.這樣只有x得到賦值, 編譯器就會報錯.如果:fn1(1,2,3);這樣寫就一點問題都沒有, 這樣子就無需在函數體內再定義y,z. 因為形參表定義的變量也是屬于這個函數的局部變量.如果再在函數體中定義: int y,z; 編譯器就會報錯: redefine....(重復定義)
2017-07-29
有興趣可以看下形參缺省, 在C++里形參是可以缺省的,即:聲明函數 int fn1(int x, int y=2, int z=3);
調用時; fn1(1); 賦值結果: x =1 ,y =2, z =3;