不明白array-1是什么意思

时间:2018-06-07 09:48:19

标签: c++ c arrays

我在理解这段代码时遇到了问题,尤其是“vet-1”部分。 这是什么意思?它返回的数组项目是什么?谢谢

#include <stdlib>
#include <iostream>

using namespace std;

void change( int m, int n[7]);

int main(){
int vet[] = {1,2,3,4,5};
change(vet[4],vet-1);
change(0,&vet[4]);
int i=0;
for (i=0;i<5;i++) cout << vet[i];
return 0;
}

void change( int m, int n[7]) {
(*(n+m))--; m++; n--;
}

1 个答案:

答案 0 :(得分:11)

vet - 1试图在 vet[0]之前引用指向元素的指针。

实际上,这样做的行为是 undefined 。所以整个程序都是未定义的。

这里没什么好理解的;继续前进!