我一直在递增指针方面考虑这个问题,但我想现在一般来说我不知道这两个操作/运算符之间的语义差异。例如,我的教授说如果你有 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/