首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌套在带有引用的数组中的函数

嵌套在带有引用的数组中的函数
EN

Stack Overflow用户
提问于 2017-11-09 16:53:15
回答 1查看 103关注 0票数 0
代码语言:javascript
运行
复制
int main() {
    int broccoli,peppers[3]={4,3,2,1} , *zucchini;
    zucchini = &peppers[Saute(peppers,1)];
    cout<<zucchini<<endl;
}

我知道peppers2 =2,但我只是想知道为什么在炒函数之后,peppers2 =3的值?因为我认为我只把辣椒当作西葫芦,我从来不声明smtg是这样=炒菜(&辣椒,1)。

代码语言:javascript
运行
复制
int Saute(int onions[], int celery) {
    celery *= 2;
    onions[celery]++;
    return celery;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-09 16:57:42

在C++中,当将数组传递给函数时,数组不会被复制,而是“作为引用”传递(实际上,int[3]类型的参数peppers会衰减到指向数组的第一个元素的指针,即int*,而参数int onions[]的类型也等同于int * )。因此,当您将peppers作为参数传递给函数参数onions,并且在函数中通过onions[celery]++增加数组的值时,实际上就会增加数组pepper的值。所以..。

顺便说一句:peppers[3]={4,3,2,1}应该是peppers[4]={4,3,2,1},这里应该有一个编译器警告。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47207471

复制
相关文章

相似问题

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