5
我學習C語言中的指針下面的工作在我對有點糊塗瞭如何以下程序工作如何指針賦值和增量例如
int main()
{
int x=30, *y, *z;
y=&x;
z=y;
*y++=*z++;
x++;
printf("x=%d, y=%p, z=%p\n", x, y, z);
return 0;
}
輸出
x=31, y=0x7ffd6c3e1e70, z=0x7ffd6c3e1e70
y
和z
指向變量x
的下一個整數地址。 我不能夠理解這個行工作
*y++=*z++;
可有人請解釋我如何一行用C明白了嗎?
除子操作順序未預先確定外。 – pmg
@pmg你是對的,你有沒有關於這種情況的例子。我喜歡閱讀這些。 – cokceken
@pgm:我很確定這很重要:編譯器無論如何都可以重新排序最後的兩條語句。 – Bathsheba