[请问] C for loop 有办法同时宣告和 assign 吗?

楼主: bluesapphire (Blue Sapphire)   2024-09-04 00:55:55
各位大大好
我想问一下
以下的 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)
作者: cuteSquirrel (松鼠)   2024-09-04 02:50:00
另外,建议max改名字为maxValue 避免撞名尽量不要取和内建function同样的名字,避免覆蓋。如果只是要assign5566 在外面改就可以了。回圈跑十次assign 5566并没有额外获得好处。
作者: andy90498 (枫情)   2024-09-04 03:32:00
在for loop里面弄一个新的变量 把max的值存在新的变量出了loop之后再使用新的变量去印出
作者: kobe8112 (小B)   2024-09-04 08:53:00
我比较好奇你是看哪本书这样教写for的?
作者: fun5566 (8卦板译人打赏箱没钱)   2024-09-04 15:47:00
新的C才可以这样写,旧的C不可以这样写(的样子).me friend 15:47 这样仅提示 1半,谁看得懂? (逃~)
作者: kobe8112 (小B)   2024-09-04 16:32:00
不是,我知道他是想在init-clause初始化多个变量,但这程式码这样编的过吗? 我随便找了几个编译器都不行啊
作者: cuteSquirrel (松鼠)   2024-09-04 17:34:00
,可以 ;不行。实务上不建议这样混合不相关的初始化

Links booklink

Contact Us: admin [ a t ] ucptt.com