c - x++ 和 x+1 到底有什么区别?

标签 c operators

我一直在递增指针方面考虑这个问题,但我想现在一般来说我不知道​​这两个操作/运算符之间的语义差异。例如,我的教授说如果你有 int a[10] 你不能说 a++ 指向下一个元素,但我从经验中知道 a+1 确实有效。我问为什么,他说“a++ 是一个 Action ,a+1 是一个表达式”。他所说的“行动”是什么意思?如果有人能告诉我更多关于这方面的信息以及这两种操作之间的内在区别,我将不胜感激。谢谢。

最佳答案

x++ 和++x

增量运算符x++ 将修改并通常返回旧x 的副本。附带一提,带前缀的 ++x 仍会修改 x,但会返回新的 x

事实上 x++ 可以看作是一种:

{
    int temp = x; 
    x = x + 1; 
    return temp;
}

++x 更像是:

{
    x = x + 1;
    return x;
}

x + 1

x+1 操作只会返回表达式的值,不会修改x。它可以被视为:

{
    return (x + 1);
}

关于c - x++ 和 x+1 到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507682/

相关文章:

python - 编辑 boolean 值和运算符

C# 隐式转换和 == 运算符

C 程序列出阿姆斯特朗数最多 1000

c - 如何在c中通过strtok复制返回的 token

c - 如何在 C 中创建两个同时运行的无限循环?

C# 隐式转换和 == 运算符

C - 垃圾字符,即使有空终止符,结构

c++ - 将宏名称传递给 X-Macro 列表是否合法

c - 我该如何解决以下代码?

Ruby - 换行符和运算符