893721708 发表于 2017-7-2 23:06:41

新手关于变量初值定义的问题

初学C不久,按照教程的方法试了一下多个同种类型变量一起赋初值,代码如下,可是调试的时候输出的值变成了c=-858993455。搞不懂哪里出错了,求各位指导!
#include <stdio.h>

void main()
{
      int a,b=5;
      int c;
      c=a+b;
      printf("c=%d\n",c);
}      

karlyes 发表于 2017-7-3 00:00:51

#include <stdio.h>

void main()
{
      int a,b=5;//a 没有给予赋值。
      int c;
      c=a+b;   * /因a 没有给予赋值;所以取分配内存的随机值,结果如你所见,如果你重新编译,结果可能也会不一样 /*
      printf("c=%d\n",c);
}      

karlyes 发表于 2017-7-3 00:03:04

如果想给a赋值,应该如此 :
inta=b=5;
或者 inta=X(任意整数),b=5;

求道于盲 发表于 2017-7-3 01:57:23

karlyes 发表于 2017-7-3 00:03
如果想给a赋值,应该如此 :
inta=b=5;
或者 inta=X(任意整数),b=5;


如果想给a赋值,应该如此 :
inta=b=5;这是语法错误

BngThea 发表于 2017-7-4 14:32:40

#include <stdio.h>

void main()
{
//      int a,b=5;//a未被初始化
      int a = 5, b = 5;//对ab都进行初始化
      int c;
      c=a+b;
      printf("c=%d\n",c);
}      


最好养成习惯,定义了一个变量就直接完成初始化过程。

KeysoDiaw 发表于 2017-7-5 17:11:56

int a,b=5;
等同于
int a;
int b = 5;
也就是说你的a没有赋值,参与运算就会导致结果溢出。

karlyes 发表于 2017-7-6 22:53:54

求道于盲 发表于 2017-7-3 01:57
这是语法错误

你编译一下,好不?这是正确的语法!

求道于盲 发表于 2017-7-8 14:12:09

karlyes 发表于 2017-7-6 22:53
你编译一下,好不?这是正确的语法!


多看书 少说话
页: [1]
查看完整版本: 新手关于变量初值定义的问题