x ++和x + 1之间究竟有什么区别?

syk*_*435 3 c operators

我一直在考虑增加一个指针,但我想现在一般我不知道这两个操作/运算符之间的语义差异.例如,我的教授说如果你有一个[10]你不能说++指向下一个元素,但我从经验中知道a + 1确实有效.我问为什么,他说"a ++是一个动作而一个+ 1是一个表达".他的意思是"动作"是什么意思?如果有人能告诉我更多关于这个以及这两个操作之间的内在差异,我会非常感激.谢谢.

Sho*_*hoe 10

x ++和++ x

增量运算符x++将修改并通常返回旧的副本x.另一方面,前缀++x仍然会修改,x但会返回新的x.

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

{
    int temp = x; 
    x = x + 1; 
    return temp;
}
Run Code Online (Sandbox Code Playgroud)

++x更像是:

{
    x = x + 1;
    return x;
}
Run Code Online (Sandbox Code Playgroud)

x + 1

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

{
    return (x + 1);
}
Run Code Online (Sandbox Code Playgroud)


Dou*_*rie 5

x++ 从某种意义上来说,它就是一种变化 x

x+1 不会改变 x