这个问题很疯狂

xzx520soft 2007-08-30 02:44:14
#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 值
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzx520soft 2007-08-30
  • 打赏
  • 举报
回复
多谢各位,分数嘛不好分,先来先得啦。
xzx520soft 2007-08-30
  • 打赏
  • 举报
回复
多谢各位。分数不好分,就先来先得。
nwpulei 2007-08-30
  • 打赏
  • 举报
回复
这样临时理解一下
i++=j++;
不就是i=i+1=j++;
这是错误的。
sniperhuangwei 2007-08-30
  • 打赏
  • 举报
回复
不过你可以这样++i = j++
shanhqk 2007-08-30
  • 打赏
  • 举报
回复
后缀++操作符确实不能返回一个左值,也就是说不能像LZ那样使用。
BHLT_US 2007-08-30
  • 打赏
  • 举报
回复
= 左边必须是左值
iatsbg 2007-08-30
  • 打赏
  • 举报
回复
i++返回的是一个临时的值,叫做右值,是不能被赋值的。=的左边必须是左值。
sniperhuangwei 2007-08-30
  • 打赏
  • 举报
回复
左边的i++产生临时变量,不能给临时变量赋值.
左值详细解释参看<C专家编程>

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧