当前位置: 代码迷 >> C语言 >> [求助]为什么不加()就编译不过?
  详细解决方案

[求助]为什么不加()就编译不过?

热度:245   发布时间:2006-08-28 07:35:44.0
[求助]为什么不加()就编译不过?
#include "stdio.h"
void main ( )
{
int i=5,j=5,p,q;
p=i+++i+++i++; /*i++不加括号能通过*/
q=++j+(++j); /*++J不加括号不能通过*/
printf("p=%d i=%d q=%d j=%d",p,i,q,j);
}





为什么呢?

搜索更多相关的解决方案: 编译  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-28 00:18:45
走火

等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
  得分:0 
谢谢了
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-28 00:50:21
走火

等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
  得分:0 
C中只有++J与J++ 
编译系统认为++J++这个没有这种写法呀

----------------解决方案--------------------------------------------------------
还请穆扬大哥给我讲讲哈
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-28 04:37:03
走火

等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
  得分:0 

我还以为是++J++ C中没有这种表达式呢
什么叫左值呀?
----------------解决方案--------------------------------------------------------
(++j)++这个应该是对的吧
这个(++J)的结果是变量+1后的J
(j++)++这个是错的
 这个(j++)的结果是当前的J值,所以不能再++了
++左右应该是变量才可以
?

----------------解决方案--------------------------------------------------------
[QUOTE]我还以为是++J++ C中没有这种表达式呢
什么叫左值呀?[/QUOTE]

左值就是左值,就是位于运算符左边的值。
那么右值又是什么呢???
----------------解决方案--------------------------------------------------------
  相关解决方案