亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

對例子代碼的一個疑惑

int fn1(int x)

{

????int y,z;

????z=2;y=x+z;

????……

這里fn1括號里的能把int y,int z加上去嗎?加上去了下面y和z是不是就不用再定義了

正在回答

2 回答

括號里的形參是一個函數的入口, c語言里所有的形參都要對應的實參傳入.如定義int fn1(int x, int y,int z){......}

但是在調用的時候: fn1(2); ?這樣寫是不對的.這樣只有x得到賦值, 編譯器就會報錯.如果:fn1(1,2,3);這樣寫就一點問題都沒有, 這樣子就無需在函數體內再定義y,z. 因為形參表定義的變量也是屬于這個函數的局部變量.如果再在函數體中定義: int y,z; 編譯器就會報錯: redefine....(重復定義)

1 回復 有任何疑惑可以回復我~

有興趣可以看下形參缺省, 在C++里形參是可以缺省的,即:聲明函數 int fn1(int x, int y=2, int z=3);

調用時; fn1(1); 賦值結果: x =1 ,y =2, z =3;

0 回復 有任何疑惑可以回復我~
#1

王之藐視

看了你的解釋懂了很多,謝謝分享
2017-08-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

對例子代碼的一個疑惑

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號