gpt4 book ai didi

C++ 函数 : ampersand vs asterisk

转载 作者:IT老高 更新时间:2023-10-28 12:33:11 34 4
gpt4 key购买 nike

假设您有一个修改变量的函数。

你应该这样写:void myfunc(int *a)还是这样void myfunc(int &a)

前者强制你用 myfunc(&b) 调用函数,所以调用者知道 b 将被修改,但后者更短,可以调用只需使用 myfunc(b)。那么哪个更好用呢?我还缺少什么吗?

最佳答案

指针(即'*')应该用在传递“NULL”有意义的地方。例如,您可以使用 NULL 来表示需要创建特定对象,或者不需要执行特定操作。或者,如果需要从非 C++ 代码调用它。 (例如,用于共享库)

例如。 libc函数time_t时间(time_t *result);

如果result 不为NULL,则存储当前时间。但如果 result 为 NULL,则不采取任何措施。

如果您正在编写的函数不需要使用 NULL 作为有意义的值,那么使用引用(即“&”)可能不会那么困惑 - 假设这是您的项目使用的约定。

关于C++ 函数 : ampersand vs asterisk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/670101/

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