在c ++中向数组变量添加数字

时间:2017-05-24 17:05:43

标签: c++ arrays

在inner_product模块的cplusplus页面中,他们提供了一个代码示例:

int init = 100;
int series1[] = {10,20,30};
int series2[] = {1,2,3};
std::cout << "using default inner_product: ";
std::cout << std::inner_product(series1,series1+3,series2,init);
std::cout << '\n';

我看到他们在调用inner_product funtcion时使用series1+3

在数组变量中添加“3”究竟是什么?

1 个答案:

答案 0 :(得分:4)

  

在数组变量中添加“3”究竟是什么?

数组操作数衰减为指向数组第一个元素的指针。将3添加到该指针,使得结果是指向第一个(即索引3处的元素)之后的3个元素的指针,该元素紧接在数组的边界之外。这个加法相当于std::end(series1),在我看来这更加惯用。

  

我假设series1本身是指向数组第一个元素的指针

你认为错了。 series1不是指针,而是数组。但是,数组的id表达式(变量名称的替代值)将在值上下文中衰减为指针。