gpt4 book ai didi

c - *p++ 和++*p 之间的区别

转载 作者:行者123 更新时间:2023-11-30 18:22:37 25 4
gpt4 key购买 nike

int a = 5;
int *p = &a;
printf("%d\n\n", ++*p);
printf("%d\n", *p++);

++*p 相当于 ++(*p)。但是*p++增加了指针,而不是p指向的值。但我无法理解为什么我的代码中的 printf 语句显示相同的值“6”。这背后有什么具体的逻辑吗?

最佳答案

当然。当您第二次打印 *p 时,您已经在第一次调用 printf() 的行上增加了它(指针指向的值)。

int a = 5;                
int *p = &a; // p = &a, *p = 5
printf("%d\n\n", ++*p); // p = &a, *p = 6
printf("%d\n", *p++); // p = &a + 1, *(p - 1) = a = 6 (still!)

关于c - *p++ 和++*p 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487644/

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