gpt4 book ai didi

c - 前/后增量指针

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

两种表达方式有区别吗:

(*x)++

++(*x)

我可以看到这两个语句都替换了 *x 中 (*x+1) 的内容。但是它们之间有什么区别吗?

最佳答案

(*x)++ 计算*x的值;作为副作用*x 中的值将增加 1。

++(*x) 计算*x + 1 的值;作为副作用*x 中的值将增加 1。

假设代码:

int a = 5;
int *x = &a;

(*x)++ 的计算结果为 5,而 ++(*x) 的计算结果为 6。

请注意,不必在表达式求值后立即应用副作用;它只需要在下一个序列点之前应用。

另请注意,(*x)++ 的括号很重要;后缀 ++ 比一元 * 有更高的优先级,所以 *x++ 会被解析为 *(x++);它仍然计算出 *x 的值,但副作用是使 指针 前进,而不是增加被指向的东西。前缀 ++ 和一元 * 具有相同的优先级,因此它们从左到右应用;因此 ++(*x)++*x 会有相同的结果(*x 递增,而不是 x)。

关于c - 前/后增量指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10927154/

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