作者cuteSquirrel (可爱的小松鼠)
看板ask
标题Re: [请问] C for loop 有办法同时宣告和 assign 吗?
时间Wed Sep 4 02:49:49 2024
for loop的变数 确实只是 local的,出了for loop就看不到。
这点你可以在for loop外面去尝试印出 idx来验证 (Compiler会回报error)
max 在 for loop 内部确实是 5566,也印的出来。
但是,理由同上,这个local的max 的生命周期只在for loop而已。
出了 for loop 之後,scope只看的到 第一行的int max = 0;
max印出来的值 自然也是0,合理。
※ 引述《bluesapphire (Blue Sapphire)》之铭言:
: 各位大大好
: 我想问一下
: 以下的 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), 来自: 114.37.214.231 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ask/M.1725389391.A.110.html