d0r*_*ife 1 c memory pointers updating
我在想,为什么:
*some_var++;
Run Code Online (Sandbox Code Playgroud)
不做同样的事情:
*some_var = *some_var + 1;
Run Code Online (Sandbox Code Playgroud)
...是因为在第二个例子中,<*>解除引用运算符被用于两个不同的目的?
*some_var = *some_var + 1;
Run Code Online (Sandbox Code Playgroud)
也就是说:*some_var的第一个实例是设置&some_var的内容,而*some_var的第二个实例是调用&some_var的当前内容?......这是一个区别C无法用语句做出的:*some_var ++; ?
此外,确实:
*some_var++;
Run Code Online (Sandbox Code Playgroud)
什么都做,如果是的话,什么?!
感谢任何投入......也许是一件小事,但我很好奇.
*some_var++;
Run Code Online (Sandbox Code Playgroud)
相当于
*(some_var++);
Run Code Online (Sandbox Code Playgroud)
并不等同于:
(*some_var)++;
Run Code Online (Sandbox Code Playgroud)
++后缀运算符的优先级高于*一元运算符.
顺便说一下,因为你没有*在语句中使用运算符的值,所以*some_var++;语句也等同于some_var++;(假设some_var它不是指向volatile对象的指针).