gpt4 book ai didi

c++ - 了解 C/C++ 中的指针

转载 作者:行者123 更新时间:2023-11-30 21:09:09 26 4
gpt4 key购买 nike

我试图理解指针是如何工作的,但我被困在这一行

for (p = s + strlen(s) - 1; s < p; s++, p--)

我不明白它相当于什么。谁能帮助我吗?

这是完整的代码。

void Reverse(char *s){
char c, *p;

for (p = s + strlen(s) - 1; s < p; s++, p--){
c = *s;
*s = *p;
*p = c;
}
}


int main(){
char ch[] = "!dlroW olleH";
Reverse(ch);
printf("%s", ch);

return 0;

}

最佳答案

在此示例中,for 循环向后遍历 s,因为其想法是反转 s 中保存的数据。 P 被分配到 s 的最后一个内存位置,并且指针算术(代码中的 p--)正在向后遍历 s。为了访问每个内存位置中的数据,通过在每个变量 (*p) 前面放置 * 来取消引用指针 s 和 p。

这样是不是更清楚了?

关于c++ - 了解 C/C++ 中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495330/

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