以下代码中是否有指针或返回指针调用的区别? 我只是试图修改我的结构并获取resutl。
唯恐说我有一个结构。指针调用和返回指针之间的区别
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;
}
结果是一样的,但哪一个更安全?我的意思是明确的?
看起来它应该做同样的事情。 – foobar123foofoo
请不要使用指针,只使用智能指针和用户友好的包装,如std :: string和std :: vector。不要浪费你的时间,“什么指针不是UB?” – stefan
除了显而易见的是一个函数返回一个值而另一个函数没有返回值,这些函数之间没有真正的区别。我不会认为比另一个更“安全”或更“明确”。 –