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

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

有個地方搞不懂,請老師指點!

void replaceMax(int arr[],int value)
{
??? int max = arr[0];
??? int index = 0;
??? int i;
??? for(i=1;i<5;i++)
??? {
??????? if(arr[i]>max)
??????? {
??????????? max = arr[i];?????????? //將數組中較大的數賦值給max
??????????? index = i;? //記錄當前索引
??????? }?????????????? ?
??? } ?
??? arr[index] = value;《《《《這里的index為什么用的是if里面的值》》》》
}

!?。。。?--10的練習題?。。。?!

int main()
{
??? int x = 10;
??? if(x>0)
??? {
??????? int x = 100;
??????? x /= 2;
??????? printf("if語句內, x=%d\n", x);????? ?
??? }
??? printf("main方法內, x=%d\n", x);《《《《這里的x用的是main里面的,而不是if里面的x值》》》》
??? fn1();
??? return 0;
}

正在回答

1 回答

變量的作用域。

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

花式秀下限 提問者

不懂,能詳細地解釋一下么,為什么5--10里面用的是main函數里面int的x,
2015-07-19 回復 有任何疑惑可以回復我~
#2

花式秀下限 提問者

這兩個函數都是在主函數里面定義了index/x,也都在if里面給index/x賦了值,在if外面使用的時候一個用的是if里面的值,另一個用的是if外面的值,
2015-07-19 回復 有任何疑惑可以回復我~
#3

Fiona0126 回復 花式秀下限 提問者

對于main函數厘面的if(x>0){int x;這里的x來說,它的作用域僅限于這個if而已,當這個if結束后,這個x不再被使用。}。、、然而main函數期初定義的x,它的作用域是整個main函數。
2015-07-19 回復 有任何疑惑可以回復我~
#4

花式秀下限 提問者 回復 Fiona0126

那為什么上面那個函數的index在if結束后被保留下來了,并且replaceMax函數里面也初定義了index,它的作用域也是整個replacMax函數
2015-07-19 回復 有任何疑惑可以回復我~
#5

花式秀下限 提問者 回復 Fiona0126

如果上面那個也用初定義的index,那么在if外index=0,arr[0]=value=1,那輸出的結果就是1 41 3 12 22
2015-07-19 回復 有任何疑惑可以回復我~
#6

Fiona0126 回復 花式秀下限 提問者

.........= =。作用域和定義的位置有關。。。在上面的if中根本就沒有重新申請空間,而是直接調用的函數棧中的index。。你要是寫成int index = i;就不一樣了。。
2015-07-19 回復 有任何疑惑可以回復我~
#7

花式秀下限 提問者 回復 Fiona0126

懂了,第一個函數里面也是因為用了int x = 100,多謝大神
2015-07-20 回復 有任何疑惑可以回復我~
查看4條回復

舉報

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

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

進入課程

有個地方搞不懂,請老師指點!

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

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

幫助反饋 APP下載

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

公眾號

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