c++中定义一个变量一定要赋初值吗

#include<iostream.h>
void main()
{
int a=2,b=3,c;
b^=a;
cout<<b<<endl;
}
上例中定义一个为复出值的变量C编译时
-------------------Configuration: zb1 - Win32 Debug--------------------
Compiling...
001.cpp
E:\Visual C++\zb1\001.cpp(4) : warning C4101: 'c' : unreferenced local variable
Linking...

zb1.exe - 0 error(s), 0 warning(s)

不一定。
是否赋初始值是按照编程的实际需要来确定的。
1 对于全局变量和局部静态变量,如果没有初始化值,那么系统默认赋值为0。所以当这类变量的初始值要求为0,或者不关心初始值时,定义时不需要赋初值,这样可以提高效率。

2 对于局部变量,如果没有赋初值,那么默认为随机值,即什么值都有可能。
对于此类变量,如果其初值不重要,或者不会影响程序结果,比如在定义后,下一步就是对其进行输入等从其它渠道获取值的代码,那么可以不赋初值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-30
在编程中,尤其是c语言或C++中,定义一个变量,在使用前一定要初始化,
如果不初始化在遍以上是没错误的,但是使用中有可能会随机赋值,造成
严重的后果。
你上例的问题不是没有初始化,而是说你定义了一个变量
但是从来没有使用过,是编译器的提示(警告),并不是错误,编译还是会通过的。
想C#等高级语言的有些数据类型,编译器会自动初始化。
例如bool 类型,C#会初始化为false,但是C++或c中如果不初始化,那么这个值很可能是随机的。本回答被提问者采纳
第2个回答  2013-07-12
不一定要赋初值
这里警告的原因是因为定义了变量c而没有使用(c不具有具体的数值,仅仅是白白占用一个空间而已)对程序运行部造成其他影响。
第3个回答  2013-07-12
warning是警告,大部分呢时候不影响运行。
相似回答