07欧冠米兰2vs3曼联:C++先定义后使用是什么意思?一个很小的细节问题

来源:百度文库 编辑:神马品牌网 时间:2024/03/29 06:50:14
正确程序如下
#include<iostream>
using namespace std;
int main()
{int a,b,c;//第4行
cin>>a>>b;//第5行
c=a+b;//第6行
cout<<"a+b="<<a+b<<endl;
return 0;}
现在把4.5.6改成2行
int a,b,c=a+b;
cin>>a>>b;
结果运算正确,但这种调试下会出现警告!!!可能在没有给a,b初始化时就把c确定下来,违反了先定义后使用的规则...所以会出现警告..
不知道我的想法是不是对的!!!??如果不是,你是怎么认为的?
这对于一个大程序来说可能是致命的危险,
嗯...好的..经典,未赋值何以求值..
谢谢11

c=a+b;问题出在这 未赋值 何以求值

你的想法基本正确
因为如同你所说的那样
在大程序中
因为对变量分配占空间时
由于不知道a,b,c会在什么时候被调用
会引起很大的编译异常
甚至是运行退出
以至这个程序毫无已用

int a,b,c=a+b;
cin>>a>>b;
这和456行不完全等价的,你不信可以换几个AB的值就知道了