C语言中为什么有些变量可以不赋初值而有些不行,如下图

上图变量b不赋初值就不行,而下图变量x1不赋初值就可以正确执行?

上图不行是因为b是作为判断条件的如果b没有赋初值可能会得到一个随机数,就会得到一个想不到的结果,而下图x1是一个普通变量它不是作为判断条件的,你可以把x1理解成一个容器,它等待往里面放东西,而在x1=2*(x2+1)这条语句中,x1盛放了东西,所以最后能正确输出结果。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-23
人家说的是要想取值必须先赋值,X1是先赋值后使用,b就不是这样。

C语言中为什么有些变量可以不赋初值而有些不行,如下图
回答:上图不行是因为b是作为判断条件的如果b没有赋初值可能会得到一个随机数,就会得到一个想不到的结果,而下图x1是一个普通变量它不是作为判断条件的,你可以把x1理解成一个容器,它等待往里面放东西,而在x1=2*(x2+1)这条语句中,x1盛放了东西,所以最后能正确输出结果。

C语言中有些变量可以不赋初值而有些不行为什么??
C语言中变量不赋初值是不能”使用“的。这个”使用“是指读取变量的内容。因为,未赋初的变量中存储的数据是个随机值,其值不确定。随机值的产生原因:变量都是存储在内存中的。程序运行以后,会在内存中给各个变量安置住处,这些地方以前可能有别的程序用过,里面留有上次使用后的结果数据,但系统不...

C语言:为什么变量j不赋初值程序就运行失败?
因为你下面j第一次引用的语句是dp[j]=dp[0]。而在这之前对j赋值的语句是写在for循环的if里,如果if不成立,那么j就没有赋值,没有赋值,如果j又没初值,那么就是随机值,那么dp[j] 就可能访问越界。

c#中局部变量不赋初值可以吗?
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。如果加了static不给初值,变量的初值是默认的 0。不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。

为什么C语言中定义变量的时候不能连续给多个变量赋初值
c语言中 不能连续赋初值说的是以下这种情况:错误演示:int a = b = 0;补充:在for函数中允许。eg: for(a=b=0; ;);y作为一个变量,可以被多次赋值,当你再一次赋值时,会将上次的值覆盖掉。在C语言中,当定义一个变量y时,系统会在内存中的某个地址分配一个存储单元,用来存放y变量的值...

C语言中变量初始化与赋初值有什么不同?
错误:1.“程序开始时进行初始化”的说法仅仅适用于静态或全局变量,而不适于局部自动变量。局部自动变量在函数调用时才能被初始化。2.“但是根据编译器的不同有些编译器会自动赋初值0或其他”——这在ISO\/IEC C语言标准中不是由实现定义的行为,如果一个编译器符合标准,那么行为就是明确的,即视此...

为什么C语言的变量未赋初值,其值就为随机数?
这里的随机其实不是指这个变量的值是任意的,只是这个值不是你确定的。如果你了解定义一个变量就是给它分配了一块内存,但是因为没有初始化,所以这块内存里的值你是不知道的,可能是你以前赋过的值,也可能是某些程序运行是产生的,所以一般都认为其值是无法预料的。希望能帮到你,谢谢。

C语言中每个变量都要赋值吗
除了引用以外一般的变量的不一定需要赋值,但是为了避免一些不必要的问题最好还是给变量赋个初始值

c++中定义一个变量一定要赋初值吗
1 对于全局变量和局部静态变量,如果没有初始化值,那么系统默认赋值为0。所以当这类变量的初始值要求为0,或者不关心初始值时,定义时不需要赋初值,这样可以提高效率。2 对于局部变量,如果没有赋初值,那么默认为随机值,即什么值都有可能。对于此类变量,如果其初值不重要,或者不会影响程序结果,...

C语言中数据类型问题以及变量何时必须赋予初值
在C中,整数除以整数,结果还是整数。fabs(x)用于的原型要求x必须为float,在这里只是将类型强制转换了一下。比如3\/2=1,fabs(1)=fabs(1.0)=1.只要在后面的计算中会用到变量作为计算条件的,都必须赋初值,否则会出现未知结果。

相似回答