C++ 数组传递值与整数?
为什么通过值不会将数组重置回全局数组,而int通过值即使在函数中更改也会重置回全局数组?例如,当我返回时,即使我添加了1,但数组并没有恢复到调用函数之前的启动方式,items_ordered也变为0。我知道如果我通过引用传递所订购的项目,它将发生变化C++ 数组传递值与整数?,c++,arrays,reference,return-value,C++,Arrays,Reference,Return Value,为什么通过值不会将数组重置回全局数组,而int通过值即使在函数中更改也会重置回全局数组?例如,当我返回时,即使我添加了1,但数组并没有恢复到调用函数之前的启动方式,items_ordered也变为0。我知道如果我通过引用传递所订购的项目,它将发生变化 #include <iostream> using namespace std; void meal(char menu_1[], int order); int main() {
#include <iostream>
using namespace std;
void meal(char menu_1[], int order);
int main()
{
char menu_order[50];
int items_ordered = 0;
meal(menu_order, items_ordered);
cout<<items_ordered<< menu_order;
return 0;
}
void meal(char menu_order[50],int items_ordered)
{
cout<< "please enter an item to order\n";
cin.get(menu_order, 50, '\n'); cin.ignore(100,'\n');
items_ordered += 1;
}
#包括
使用名称空间std;
无效餐(字符菜单1[],国际订单);
int main()
{
字符菜单_顺序[50];
int items_ordered=0;
用餐(菜单、项目);
coutYou不能按值传递(内置)数组。参数是指针。午餐时间的对话中总是充满有趣的讨论!“引用只是伪装的指针!”“const char*vs char const*vs const char const*”,最后一点也很重要:“void f(int*)vs void f(int[])vs void f(int[3])。