最近被一个很基本的知识点给咬伤,虽然之前知道这个问题,但是写代码的时候不小心还是容易犯错。简单记录一下。
提出问题
之前,代码里拥有如下数组:
1 2 3 4 |
|
现在需要以追加的形式,添加一个yellow的颜色。粗心之下,我写成了:
1 2 3 4 5 |
|
在某处代码,我使用了COLORS[3],类似于
cout<<COLORS[3]<<endl;
程序执行后,就崩溃了。
分析问题
问题出在,在追加的代码中的第4行,漏掉了一个逗号!!!正确的形式应该是:
1 2 3 4 5 |
|
在没有逗号下,编译器将”green”和”yellow”当做一个字符串,也就是”greenyellow”,因此,COLORS[2]其实是”greenyellow”,而COLORS[3]是未显式初始化的,为NULL。因此使用COLORS[3]程序崩溃。
解决问题
上面已经解决了问题。这里小小补充下:
在C++中,如下几种形式结果是一样的,表示的是同一个字符串”hello, world” :
1
|
|
1 2 |
|
1 2 |
|
1
|
|