for循环报错‘expected identifier or '('’问题求助
解决C语言for循环中多变量定义的编译错误
你的编译错误完全来自for循环的初始化语法问题:在C语言中,同一类型的多个变量在for循环初始化块中定义时,只需要声明一次类型,不能重复写int。
错误代码行:
for (int i = 1, int j = 0; i < n; i++, j++)
修正后的正确写法:
for (int i = 1, j = 0; i < n; i++, j++)
补充优化建议
你的代码还有两个可改进的点:
- 变量
j完全可以用i-1替代,没必要额外声明,能让代码更简洁:for (int i = 1; i < n; i++) { printf("%i ", power[i-1]); power[i] = power[i - 1] * 2; } // 循环结束后别忘了打印最后一个元素 printf("%i\n", power[n-1]); - 你使用的
int power[n]是变长数组(VLA),虽然后续C标准支持,但如果在不兼容VLA的编译器环境下可能出问题,建议根据需求改用动态内存分配或固定大小数组。
内容的提问来源于stack exchange,提问作者Santiago De Luca
相关产品推荐
相关产品推荐

