gpt4 book ai didi

c++ - 将指针作为函数参数传递

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

我有

const char* one = "q";
const char* two = "p";

如果我添加代码

const char* temp = two;
two = one;
one = temp;

我可以切换'一'和'二'的内容,但是用

void order(const char* first, const char* second)
{
const char* temp = second;
second = first;
first = temp;
}

order(one, two);

我无法切换它们。我猜这是因为我向我的函数传递了错误的参数?

最佳答案

编辑:true - 这些是指向 const char 的指针...因此指针本身不是 const。

您正在尝试更改指针指向的内容 - 该函数获取原始指针内容的拷贝,因此您需要拥有指针的指针或使用引用。

即:

C

void order( const char **first, const char **second )
{
const char* temp = *first;
*first = *second;
*second = temp;
}

C++

void order( const char *&first, const char *&second)
{}

(内容和你的功能一样)

关于c++ - 将指针作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134314/

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