谁能告诉我这个程序的结果是多少?为什么?
谁能告诉我这个程序的结果是多少?为什么?
- 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有可能用的是原始值,也有可能是被改变的值。
像这种,算式内多次使用同一个变量,而变量的值又会改变的时候,
执行结果是未定义
也就是,不同的编译器,可能结果不一样
[解决办法]
第二个不能通过。