gpt4 book ai didi

c++ - 不理解++ 和 -- 的指针算术

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:31 25 4
gpt4 key购买 nike

所以,我正在通过 http://cplusplus.com/doc/tutorial/pointers/ 学习指针我对指针算术部分一无所知。有人可以把事情弄清楚,或者给我指点一个我可能会更好理解的教程。

我对括号中的所有东西特别困惑,比如 *p++(*p)++*(p++) 之间的区别> 等

最佳答案

*p++

对于这个,++* 有更高的优先级,所以它将指针递增 1 但在原始位置检索值,因为后递增返回指针然后递增它的值。

(*p)++

这强制了另一个方向的优先级,因此首先取消引用指针,然后该位置的值递增 1(但返回原始指针位置的值)。

*(p++)

这一个首先递增指针,因此它的行为与第一个相同。

需要注意的重要一点是,指针递增的数量受指针类型的影响。从您提供的链接:

char *mychar;
short *myshort;
long *mylong;

char 的长度为一个字节,因此 ++ 将指针增加 1(因为指针指向每个字节的开头)。

short 的长度为两个字节,因此 ++ 将指针增加 2,以便指向下一个 short 的开头而不是下一个的开头字节。

long 的长度为四个字节,因此 ++ 将指针增加 4。

关于c++ - 不理解++ 和 -- 的指针算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215407/

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