gpt4 book ai didi

c++ - 指针调用和返回指针的区别

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

在下面的代码中,通过指针调用和返回指针有什么区别吗?我只是尝试修改我的结构并获得结果。
至少我有一个结构。

struct Address
{
const char* name; // "Jim Dandy"
int number; // 61
};

Address* Modifying2(Address* adr)
{
adr->name="Long John2";
return adr;
}
//or
void Modifying3(Address* adr)
{
adr->name="Long2 John2";
// return adr; no return
}
void print_addr2(const Address& r)
{
cout << r.name << '\n'
<< r.number << ' ' << r.street << '\n';
}
int main()
{
Address jd =
{
"Jim Dandy",
61
};

Address* jdPtr=&jd;
Modifying3(jdPtr);
print_addr(jdPtr);
//or
print_addr(Modifying2(jdPtr));

return 0;
}

结果相同,但哪个更安全?我的意思是定义明确?

最佳答案

这两种方法都在做同样的事情。返回指针不是必需的。

但最安全的方法是通过引用传递值。 (您还没有以这种方式实现)。在这里你必须怎么做

void Modifying4(Address &adr)
{
adr.name="Long2 John2";
}

关于c++ - 指针调用和返回指针的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488788/

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