[英]Declaring int object in c++
我是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
。 有什么事?
编写int c;
不初始化c
(除非c
是在全局范围内或具有static
存储)。 初始化花费了CPU时钟周期,因此C ++允许程序员放弃这种不必要的CPU开销,但有可能导致程序不稳定。
实际上,在C ++中读取未初始化变量的行为是不确定的 (除非它是char
, signed char
或unsigned char
)。 永远不要做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.