【问题标题】:Mathematical representation of ++a++a 的数学表示
【发布时间】:2015-12-15 01:34:50
【问题描述】:

我们可以将a++定义为

a = a + 1;

不言自明的是,它复制了a,然后将其加1并将结果放入a

但是我们可以用同样的方式定义++a吗?也许答案很简单,但我不知道。

【问题讨论】:

  • 如果你只关心语句执行后a的值,那么a++++a是一样的。这是表达式不同的结果,但您的“定义”并不关心这一点。我也不会称其为“数学”,因为数学公式 a = a + 1 没有任何意义。
  • 显然你已经切换了a++++a。前缀运算符++a 可以替换为(a = a+1)。对于后缀运算符a++,表达式结果是a的原始值,如果不使用另一个后缀运算符,则无法将其定义为表达式。
  • 对于事物的数学视图,您可以a 视为一个无限的值序列,即每个时间点的值。但这不是 C++ 编程的实际观点。

标签: c++ post-increment pre-increment


【解决方案1】:

a++ 和 ++a 的优先级不同。 - a++:在 a 递增之前评估 a; - ++a:在评估或使用 a 之前增加它

【讨论】:

    【解决方案2】:

    区别在于:

    int a = 1; 
    int b = ++a; 
    // Now a == 2 and b == 2 
    
    int c = 1; 
    int d = c++;
    // Now c == 2 and d == 1
    

    区别在于操作的返回值。

    【讨论】:

    • 谢谢你的回复,我知道区别,我不要求它,问的是我们能不能用一个简单的数学方程来展示 ++a 的功能,不需要任何文字解释跨度>
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2018-08-03
    • 2014-06-27
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多