#include void main () { int x,y,z,a,b,c,d,g,f; scanf("%d+%d",&x,&y); a=x/100;b=y/100; c=x那里错了?提示是c:\documents and settings\g-st-09\桌面\c.cpp(14) :error C2106:'=' :left operand must be l-valueError executing cl.exe.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/28 09:10:40
![#include void main () { int x,y,z,a,b,c,d,g,f; scanf(](/uploads/image/z/12328065-9-5.jpg?t=%23include+void+main+%28%29+%7B+int+x%2Cy%2Cz%2Ca%2Cb%2Cc%2Cd%2Cg%2Cf%3B+scanf%28%22%25d%2B%25d%22%2C%26x%2C%26y%29%3B+a%3Dx%2F100%3Bb%3Dy%2F100%3B+c%3Dx%E9%82%A3%E9%87%8C%E9%94%99%E4%BA%86%3F%E6%8F%90%E7%A4%BA%E6%98%AFc%3A%5Cdocuments+and+settings%5Cg-st-09%5C%E6%A1%8C%E9%9D%A2%5Cc.cpp%2814%29+%3Aerror+C2106%3A%27%3D%27+%3Aleft+operand+must+be+l-valueError+executing+cl.exe.)
#include void main () { int x,y,z,a,b,c,d,g,f; scanf("%d+%d",&x,&y); a=x/100;b=y/100; c=x那里错了?提示是c:\documents and settings\g-st-09\桌面\c.cpp(14) :error C2106:'=' :left operand must be l-valueError executing cl.exe.
#include void main () { int x,y,z,a,b,c,d,g,f; scanf("%d+%d",&x,&y); a=x/100;b=y/100; c=x
那里错了?提示是c:\documents and settings\g-st-09\桌面\c.cpp(14) :error C2106:'=' :left operand must be l-value
Error executing cl.exe.
#include void main () { int x,y,z,a,b,c,d,g,f; scanf("%d+%d",&x,&y); a=x/100;b=y/100; c=x那里错了?提示是c:\documents and settings\g-st-09\桌面\c.cpp(14) :error C2106:'=' :left operand must be l-valueError executing cl.exe.
首先你要知道一点,能放在赋值号(=)左边的必须是可写的.
然后一点,函数的返回值问题,这里的f()的返回值是int& 也就是一个int型的引用.如果返回的不是引用,那么返回值会产生一个临时变量,将这个临时变量赋给等号左边对象;而如果是引用的话,就不会产生临时变量,直接将引用所指的对象赋值给等号左边的对象.
临时对象是不可以做为左值的.所以不加&就会出错.
因为这里的f返回的是x的引用,(x是个全局变量,所以他这么做是有意义的).因此f()=100就相当于x=100.
建议你在刚开始学C++的时候先多看看书,要不一些很基本的语法问题,解释起来会很麻烦,而且意义不大.