首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

哪位高手能告诉小弟我这个程序的结果是多少?为什么

2012-04-27 
谁能告诉我这个程序的结果是多少?为什么?谁能告诉我这个程序的结果是多少?为什么?C/C++ code#includeiost

谁能告诉我这个程序的结果是多少?为什么?
谁能告诉我这个程序的结果是多少?为什么?

C/C++ code
#include<iostream>using namespace std;int &S(int &a){    a=100;    return a;}void main(){    int b=10;    S(b)=(b*1);    cout<<b<<endl;}


而这个程序的值是多少,为什么?

C/C++ code
#include<iostream>using namespace std;int &S(int &a){    a=100;    return a;}void main(){    int b=10;    S(b)=(b*3);    cout<<b<<endl;}


[解决办法]
我觉得都是编译失败。
b*1的结果无法赋值给 非const引用
[解决办法]
结果是什么,自动运行就知道了.
如果要知道为什么,就单步跟踪的时候,显示出汇编语句就明白了
[解决办法]
S(b)=(b*1);
s(b)会改变b, 而式子的b有可能用的是原始值,也有可能是被改变的值。
像这种,算式内多次使用同一个变量,而变量的值又会改变的时候,
执行结果是未定义
也就是,不同的编译器,可能结果不一样


[解决办法]
第二个不能通过。

热点排行