[請問] C for loop 有辦法同時宣告和 assign 嗎?

看板ask (問板)作者 (Blue Sapphire)時間2周前 (2024/09/04 00:55), 編輯推噓3(309)
留言12則, 4人參與, 2周前最新討論串1/2 (看更多)
各位大大好 我想問一下 以下的 code, 我發現 max 打印出來會是 0 (而不是我腦海預期的 5566) 請問一下,我要怎麼在 for loop 那邊,同時宣告 int idx, 以及 assign 值給 max 呢? (從實驗結果推估,for loop 的 max 因為前面的 int idx, 導致 compiler 認成 for 裡面的 local variable 是 for loop 裡面自己的) int max = 0; int idxCnt = 10; int arr[10]; for (int idx = 0; max = 5566; idx < idxCnt; idx++) { arr[idx] = idx; } cout << max << endl; actual output: 0 wanted output: 5566 (dont know how to modify the above code) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.133.35 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/ask/M.1725382557.A.79E.html

09/04 02:50, 2周前 , 1F
另外,建議max改名字為maxValue 避免撞名
09/04 02:50, 1F

09/04 02:50, 2周前 , 2F
盡量不要取和內建function同樣的名字,避免覆蓋。
09/04 02:50, 2F

09/04 02:54, 2周前 , 3F
如果只是要assign5566 在外面改就可以了。
09/04 02:54, 3F

09/04 02:54, 2周前 , 4F
回圈跑十次assign 5566並沒有額外獲得好處。
09/04 02:54, 4F

09/04 03:32, 2周前 , 5F
在for loop裡面弄一個新的變數 把max的值存在新的變數
09/04 03:32, 5F

09/04 03:33, 2周前 , 6F
出了loop之後再使用新的變數去印出
09/04 03:33, 6F

09/04 08:53, 2周前 , 7F
我比較好奇你是看哪本書這樣教寫for的?
09/04 08:53, 7F

09/04 15:47, 2周前 , 8F
新的C才可以這樣寫,舊的C不可以這樣寫(的樣子).
09/04 15:47, 8F

09/04 15:57, 2周前 , 9F
me friend 15:47 這樣僅提示 1半,誰看得懂? (逃~)
09/04 15:57, 9F

09/04 16:32, 2周前 , 10F
不是,我知道他是想在init-clause初始化多個變數,
09/04 16:32, 10F

09/04 16:33, 2周前 , 11F
但這程式碼這樣編的過嗎? 我隨便找了幾個編譯器都不行啊
09/04 16:33, 11F

09/04 17:34, 2周前 , 12F
,可以 ;不行。實務上不建議這樣混合不相關的初始化
09/04 17:34, 12F
文章代碼(AID): #1crp-TUU (ask)
文章代碼(AID): #1crp-TUU (ask)