嵌套在带有引用的数组中的函数 在C++中,当将数组传递给函数时,数组不会被复制,而是作为引用传递(实际上参数代码> >代码> int [3 ] < /COD>衰变为数组的第一个元素的指针,即到int */COD>,并且类型的参数 int ONIO[]/COD>相当于int */COD>。因此,当您将胡椒作为参数传递给函数参数洋葱,并在函数中通过洋葱[芹菜]++增加数组的值时,实际上增加了数组胡椒的值。 这就是为什么 >辣椒[3 ] = {4},3,2,1} 应该是代码>辣椒[4 ] = {4},3,2,1} ,你应该得到一个编译器警告。C++中,
,当你把数组传递给函数时,数组不会被复制,而是“作为引用”传递(实际上参数<代码>辣椒>代码> >代码> int [ 3 ]衰减为指向数组第一个元素的指针,即指向嵌套在带有引用的数组中的函数 在C++中,当将数组传递给函数时,数组不会被复制,而是作为引用传递(实际上参数代码> >代码> int [3 ] < /COD>衰变为数组的第一个元素的指针,即到int */COD>,并且类型的参数 int ONIO[]/COD>相当于int */COD>。因此,当您将胡椒作为参数传递给函数参数洋葱,并在函数中通过洋葱[芹菜]++增加数组的值时,实际上增加了数组胡椒的值。 这就是为什么 >辣椒[3 ] = {4},3,2,1} 应该是代码>辣椒[4 ] = {4},3,2,1} ,你应该得到一个编译器警告。C++中,,c++,pointers,reference,C++,Pointers,Reference,,当你把数组传递给函数时,数组不会被复制,而是“作为引用”传递(实际上参数辣椒>代码> >代码> int [ 3 ]衰减为指向数组第一个元素的指针,即指向int*,参数类型int-onions[]也相当于int*)。因此,当您将胡椒作为参数传递给函数参数洋葱,并在函数中通过洋葱[芹菜]++增加数组的值时,实际上增加了数组胡椒的值。 这就是为什么 顺便说一句:peppers[3]={4,3,2,1}应该是peppers[4]={4,3,2,1},你应该在这里得到一个编译器警告。为什么炒过函数后pe
int*
,参数类型int-onions[]
也相当于int*
)。因此,当您将胡椒
作为参数传递给函数参数洋葱
,并在函数中通过洋葱[芹菜]++
增加数组的值时,实际上增加了数组胡椒
的值。
这就是为什么
顺便说一句:
peppers[3]={4,3,2,1}
应该是peppers[4]={4,3,2,1}
,你应该在这里得到一个编译器警告。为什么炒过函数后peppers[2]=3的值?
因为:洋葱[芹菜]+
peppers[3]={4,3,2,1}
您的意思是peppers[4]={4,3,2,1}
?peppers
是一个由3int
组成的数组,但您想在其中填充4个值zucchini
是一个指针,您确定要这样打印它,还是要打印*zucchini
?当作为参数传递给函数时,数组会衰减为指向第一个元素的指针。@DimChtz但第一个元素不是有胡椒[0]吗?@Perfectisshit是的,但数组的大小是4而不是3。为什么在Saute函数之后胡椒[2]=3?
因为:洋葱[芹菜]++
peppers[3]={4,3,2,1}
您的意思是peppers[4]={4,3,2,1}
?peppers
是一个由3int
组成的数组,但您想在其中填充4个值zucchini
是一个指针,您确定要这样打印它,还是要打印*zucchini
?当作为参数传递给函数时,数组会衰减为指向第一个元素的指针。@DimChtz但第一个元素不是有一个peppers[0]吗?@Perfectisshit是的,但数组的大小是4而不是3。我刚在网上查过,我不知道数组是这样工作的。谢谢!我刚在网上查过,我不知道数组是这样工作的。谢谢!
int main() {
int broccoli,peppers[3]={4,3,2,1} , *zucchini;
zucchini = &peppers[Saute(peppers,1)];
cout<<zucchini<<endl;
}
int Saute(int onions[], int celery) {
celery *= 2;
onions[celery]++;
return celery;
}