在c ++中声明int对象

时间:2018-01-12 08:24:56

标签: c++ object int declaration

我是C ++的新手,我正在解决一些简单的练习。当我遇到一个我无法解释的行为时,我正在解决一个问题。

我的函数将2个数组作为参数,我必须返回这些数组中所有元素的总和。我的代码:

#include <vector>

using namespace std;

int arrayPlusArray(vector<int> a, vector<int> b){
    int c=0;
    for (auto k : a){
        c += k;}
    for (auto k : b){
        c += k;}
    return c;
}

这样做有效,但只要我写int c;而不是int c=0;,它就不再正常工作了。我认为当我写int c;时,它会将c的值设置为0。怎么了?

1 个答案:

答案 0 :(得分:4)

撰写int c;初始化c(除非c处于全局范围或具有static存储空间。初始化会花费CPU时钟周期,因此C ++允许程序员以牺牲潜在的程序不稳定性为代价来放弃这种不必要的CPU开销。

事实上,读取未初始化变量的行为未定义(除非它是charsigned char或{C}中的unsigned char)。 从不这样做。