首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么处理指针的函数需要在C ++中的函数名前面使用*(asterix)?

为什么处理指针的函数需要在C ++中的函数名前面使用*(asterix)?
EN

Stack Overflow用户
提问于 2019-03-05 00:08:58
回答 1查看 0关注 0票数 0

当我从函数名中删除星号*时,下面的代码给出了一个错误,这是一个传统的规则吗?

此函数在堆上分配内存并返回指向堆的初始位置的指针。

代码语言:javascript
复制
int *create_array (size_t size, int int_value = 0)
{
    int *new_storage {nullptr};
    new_storage = new int [size];
    for (size_t i{0}; i < size; ++i)
        *(new_storage + i) = int_value;
    return new_storage;

}
EN

回答 1

Stack Overflow用户

发布于 2019-03-05 09:57:53

星号不在函数名前面,它在int后面

返回类型是int *,函数名称是create_array

如果你删除了*那么返回类型现在int,但该函数仍然试图返回一个int *,因此错误。

如果你愿意的话,你也可以这样写它,*旁边是int

代码语言:javascript
复制
int* create_array (size_t size, int int_value = 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档