gpt4 book ai didi

c++ - 关于指针 C++ 的困惑

转载 作者:太空狗 更新时间:2023-10-29 23:39:58 25 4
gpt4 key购买 nike

任务:我想在函数中不引用传递指针的情况下交换指针。

问题 1:以下代码可以完成工作,但我认为它交换“数据”而不是交换“指针”。

void swappointers(char *ptrX, char *ptrY)
{
char dummy;
dummy = *ptrX;
*ptrX = *ptrY; //LINE
*ptrY = dummy;
}

问题 2:注释行是如何工作的? *ptrX 表示 ptrX 正在被取消引用(访问指针指向的值)。 *ptrY 的情况类似。但是为什么 ptrX 指向的值在这里被改变了?我的意思是它实际上看起来像这样:

ValueofX = ValueofY

谢谢你:)

编辑:

解决了第一个问题。

void swappointers(char **ptrX, char **ptrY)
{
char *dummy = nullptr;
dummy = *ptrX;
*ptrX = *ptrY;
*ptrY = dummy;
}

最佳答案

I think its swapping the "data" instead of swapping the "pointers".

你是对的。

I want to swap pointers without reference passing the pointers in the function.

那是不可能的。除非您通过引用传递,否则调用者将看不到函数内部所做的更改。

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

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