gpt4 book ai didi

c - 指针赋值和递增在下面的例子中是如何工作的

转载 作者:太空狗 更新时间:2023-10-29 15:03:31 25 4
gpt4 key购买 nike

我正在学习 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

yz 指向变量x 的下一个整数地址。我无法理解这条线是如何工作的

*y++=*z++;

谁能解释一下 C 是如何理解这一行的?

最佳答案

*y++=*z++;其实就是

*y = *z;
y += 1*(sizeof(int)); //because int pointers are incremented by 4bytes each time
z += 1*(sizeof(int)); //because int pointers are incremented by 4bytes each time

所以指向的值不受影响,指针加一。

关于c - 指针赋值和递增在下面的例子中是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com