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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 对于局部变量,如果没有赋初值,那么默认为随机值,即什么值都有可能。
对于此类变量,如果其初值不重要,或者不会影响程序结果,比如在定义后,下一步就是对其进行输入等从其它渠道获取值的代码,那么可以不赋初值。
参考技术A 在编程中,尤其是c语言或C++中,定义一个变量,在使用前一定要初始化,
如果不初始化在遍以上是没错误的,但是使用中有可能会随机赋值,造成
严重的后果。
你上例的问题不是没有初始化,而是说你定义了一个变量
但是从来没有使用过,是编译器的提示(警告),并不是错误,编译还是会通过的。
想C#等高级语言的有些数据类型,编译器会自动初始化。
例如bool 类型,C#会初始化为false,但是C++或c中如果不初始化,那么这个值很可能是随机的。本回答被提问者采纳
参考技术B 不一定要赋初值
这里警告的原因是因为定义了变量c而没有使用(c不具有具体的数值,仅仅是白白占用一个空间而已)对程序运行部造成其他影响。
参考技术C warning是警告,大部分呢时候不影响运行。

在c语言里怎么把第一个变量的值赋给第二个变量

在c语言里怎么把第一个变量的值赋给第二个变量

我们可以这样想假设两个人(记为a和b)都只有一只手,每个人的一只手都拿着一只苹果(a和b所存储的值),然后他们无法把苹果直接交给对方的,我们可以
1)先把a的苹果先交给第三个人temp保存一下
2)把b的苹果交给a
3)把第三个人temp保存的苹果交给b
具体c语言代码:

#include <stdio.h>
int main()

int a,b,temp;
printf("please enter two nuber:\n");
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
temp=a;
a=b;
b=temp;
printf("NOW a=");
printf("%d",a);
printf(" b=");
printf("%d",b);
return 0;
参考技术A 第二个变量=第一个变量;
就行了
参考技术B a=b(第一个变量a,第二个变量b)追问

能给出具体的做法么

追答

#include
using namespace std;
int main()

char a,b;
a=b;
return 0;

参考技术C 额,单纯赋值的话b=a就好了
交换的话,c=a,a=b,b=c

以上是关于c++中定义一个变量一定要赋初值吗的主要内容,如果未能解决你的问题,请参考以下文章

.为啥c语言里有的变量要赋初值,有的变量不用赋。

C语言指针变量为啥要赋初值?

在c语言中给变量赋初值有啥作用

c语言如何通过函数来改变已经赋初值的全局变量的值?

在c语言里怎么把第一个变量的值赋给第二个变量

java中成员或类变量自动初始化是啥意思