int main() { int broccoli,peppers[3]={4,3,2,1} , *zucchini; zucchini = &peppers[Saute(peppers,1)]; cout<<zucchini<<endl;}我知道Peppers [2] = 2,但是想知道为什么在进行Saute功能后,Peppers [2] = 3的价值?因为我认为我只将辣椒提到西葫芦,而且我从未声明过这样的smtg = Saute(&peppers,1)int Saute(int onions[], int celery) { celery *= 2; onions[celery]++; return celery;} 最佳答案 在C ++中,当您将数组传递给函数时,不会复制该数组而是将其作为“引用”传递(实际上,类型为peppers的参数int[3]会衰减为指向数组第一个元素的指针,即指向,并且参数int*的类型也等​​同于int onions[])。因此,当您将int *作为参数传递给函数自变量peppers并在函数中通过onions增加数组的值时,实际上就增加了数组onions[celery]++的值。这就是为什么...顺便说一句:pepper应该是peppers[3]={4,3,2,1},并且您应该在此处收到编译器警告。
10-08 11:36