dt3tc 发表于 2018-3-26 14:44:10

C++基于范围的循环

#include<iostream>

using namespace std;

void DisplayIntegers(int someNums[]){
//for (int aNum : someNums)cout << aNum << ' ';
}

int main()
{
int someNums[] = { 1, 101, -1, 40, 2040 };
for (int aNum : someNums)cout << aNum << ' ';
//DisplayIntegers(someNums);
return 0;
}

第六行取消注释就报错,但是同样的内容放到main() 就没问题。。
谢谢

BngThea 发表于 2018-3-26 15:17:32

因为函数传递只是数组的地址,
你用这种语法写,编译器必须知道数组长度
在main函数中是知道长度的,但是调用函数时却不知道

dt3tc 发表于 2018-3-26 15:24:28

BngThea 发表于 2018-3-26 15:17
因为函数传递只是数组的地址,
你用这种语法写,编译器必须知道数组长度
在main函数中是知道长度的,但是 ...

请问怎么才不用显式传送长度变量呢?

人造人 发表于 2018-3-26 16:16:08

dt3tc 发表于 2018-3-26 15:24
请问怎么才不用显式传送长度变量呢?

请问没有长度变量,如何处理?

我告诉你在内存地址 0x1000 的位置有数据需要累加,请问你要如何处理(在没有长度变量的情况下)?
我如果告诉你在内存地址 0x1000 的位置有10个数据需要累加,请问你要如何处理(这次有了长度了)?
页: [1]
查看完整版本: C++基于范围的循环