我来自Java,我希望提高我的编码技能和深度工作知识,我认为最好的语言是C所有人的母亲。我对它的工作原理感到非常兴奋,但现在请提出疑问。为什么在C第一个代码不起作用,第二个是?
P.s。:我将跳过几个步骤来加速代码并专注于问题。我正在学习C99。
int a,b,c;
int sum = a+b+c;
print scanf ecc...
printf("%d", sum);
结果将是-1234567 ecc ..
使用这段代码它会很精彩,这是命令式编程的意思吗?
int a,b,c;
int sum;
print scanf ecc...
sum = a+b+c;
printf("%d", sum);
抱歉,糟糕的英语不是我的第一语言,我也会改进:°D
答案 0 :(得分:1)
本地变量未在C中初始化,其值为 indeterminate 。使用未初始化的局部变量会导致未定义的行为。
在没有循环或者getos的情况下,C也与Java完全一样。语句从上到下执行,因此在使用它之后调用scanf
初始化变量将不起作用。以前的操作不会重做。
答案 1 :(得分:1)
当您使用代码的第一部分时,即
int a,b,c;
int sum = a+b+c;
print scanf ecc...
printf("%d", sum);
首先添加a
,b
,c
然后将产生具有垃圾值的结果
而在第二种情况下
int a,b,c;
int sum;
print scanf ecc...
sum = a+b+c;
printf("%d", sum);
它将使用scanf读取值,然后添加这些值,这样就不会获取垃圾值并产生精彩的结果