初学~C++,有个问题请教一下~

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:54:41
void main()

{ int x=1,total;

while(x==1){ total+=x; x++; }

}//如果cout就是total+1的ASCII的值,对吧~

----------------------------------------------------------

void main()

{int x=1; total;

total+=x; x++;

}//这个就会显示total未初始化的错误,我就是不太明白上面那个也没初始化啊~为什么就没错呢?

麻烦解释一下,谢谢哈~

上面那个你初始化了啊 用int 初始化的,把total设置成了int整型。
int x=1,total;
后面你写的是 int x=1; total; 注意 此处是分号,则是两个语句,即你没有设定total是什么型变量

我 也没看明白

你这个程序有三点错误:
1.先说下你这个两个程序的不同啊:
你的第一个程序语法错误(int x=1,total;),第二个程序有语法错误(int x=1; total; ),注意这两个句子的区别(在x=1后面第一个程序你用的是“,”号,第二个程序你用的是“;”号),这样你的第二个程序就有错了,但错误不是total未初始化,而是total没有定义。

2.cout显示的不是total+1的ASCLL码的值,应该是根据你定义的类型而定的,如果你是int(整形),那么就显示数字。如果是char,那么就显示字母。。。。。
3.但你使用它(total+=x),那么一定要初始化,要不你得到的是一个很大的数字(原因是在定义total时,系统会未total分配内存,而内存里的随即初始化的,所以你+x还是的到一个很莫名其妙的数字)

这样解释你应该明白了把!!!