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

这个有关问题很疯狂

2012-03-18 
这个问题很疯狂#includestdio.hintmain(void){inti,ji1j3i++j++printf( %d\t%d\n ,i,j)return

这个问题很疯狂
#include   <stdio.h>

int   main(void)
{
int   i,   j;

i   =   1;
j   =   3;

i++   =   j++;
printf( "%d\t%d\n ",   i,   j);

return   0;
}

编译出错:error   C2106:   “=”   :   左操作数必须为   l   值


[解决办法]
左边的i++产生临时变量,不能给临时变量赋值.
左值详细解释参看<C专家编程>
[解决办法]
i++返回的是一个临时的值,叫做右值,是不能被赋值的。=的左边必须是左值。
[解决办法]
= 左边必须是左值
[解决办法]
后缀++操作符确实不能返回一个左值,也就是说不能像LZ那样使用。
[解决办法]
不过你可以这样++i = j++
[解决办法]
这样临时理解一下
i++=j++;
不就是i=i+1=j++;
这是错误的。

热点排行