//bug(feature) in VS code about arrays
const int NUMBER = 5;
int count[NUMBER] = {0, 0, 0, 0, 0};
如上代码,会得到error
error: variable-sized object may not be initialized
而两种修改方法可以避免报错
-
更换常量定义
有一种说法,const int number = 5; 的定义法实际为 只读变量
而改用 #define number 5 的定义则不会报错。
同理,放弃常量定义直接采用 int count[5] = {0,0,0,0,0}; 同样可以规避这个问题。 -
随后赋值
在另一种说法中,C语言无法在定义数组的同一行予以赋值,虽然在实际运用中完全可行,不过提供了解决此问题的另一种思路:
const int NUMBER = 5;
int count[NUMBER];
for (int i = 0; i < 10; i++)
{
count[i] = 0;
}
这种方法相对第一种增加了代码行数,for循环进行数组定义也是相当常见的方法,不过对于某一特定无规律的有限数组如[1,2,3,2,4,1]之类,for循环实现起来则更加困难。
ps:作为零基础萌新,选择了Harvard的cs50x作为入门,之前的作业部分都是采用cs50团队基于Github上的工作台开发的VScode云版本。这段时间补c语言基础顺便调试了自己安装的VScode,除了配置环境之外大大小小的更改也是数不清,现在还无法流畅地用终端编译、运行、用argv参数,用debugger和valgrind等等。。。唯一的好处是真的美观了很多(
第一篇csdn上的博客,虽然几乎没人看得到,就用这里来记录一下学编程的路径和大大小小的问题。 hello,world. :)



