【问题标题】:Increment-decrement in c [duplicate]c中的增量 - 减量[重复]
【发布时间】:2014-02-11 11:57:15
【问题描述】:

如果

void main()
{ 
  int i=2,j=4; 
  i=+++i+j; //is not an error 
  i=---i+j; // is a L-value required error..
}

谁能详细解释多次递增和递减背后的概念..

【问题讨论】:

  • ...请解释写不可读代码的概念
  • 你打算如何处理这些多重增量和减量?
  • 很抱歉写了不可读的代码...但是你能在这个问题的上下文中解释我吗..
  • 实际上是我的一次考试中的输入/输出问题..
  • @user2132128 - 如果您编写不可读的代码,则很难维护/理解。如果您编写可读的代码,那么您一开始就不会遇到这个问题。所以回答你的问题 - 不要写不可读的代码

标签: increment decrement


【解决方案1】:

我认为解析器无法以它想要的格式解析它。尝试使用如下括号。它会起作用的。

i=-(--i)+j;

【讨论】:

  • 问题是- 操作符和+ 第一个操作符有什么不同。
  • 正是先生..你能解释一下为什么第一个有效..
  • 在这两种情况下,程序都表现出未定义的行为,并且输出可以是任何东西。 1. main 应该返回 int 而不是 void。在 C 中返回 void 是一种扩展,并非所有编译器都支持使代码不可移植,在 C++ 中它只是未定义的行为。 2. 这两种情况都打破了标准中规定变量在序列点之间不能被多次访问的部分,其中至少一个访问是改变变量值。该标准规定,在这种情况下,行为将是未定义的。我建议你在网络上查看序列点和未定义的行为。
猜你喜欢
  • 1970-01-01
  • 2013-01-19
  • 2013-07-15
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多