不明白array-1的含义

Giu*_*lin -1 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--;
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 11

vet - 1是指指针元素的尝试之前 vet[0].

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

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

  • _"继续前进!"_字面意思.特别是如果这是一个面试问题. (4认同)
  • @FrancescoMarzetta这是未定义行为的一部分.程序*可能*崩溃,但它没有. (2认同)