c语言中,如果出现a[-1][1]算什么

2025-01-05 17:22:55
推荐回答(4个)
回答1:

a是个指针的指针。
然后第一个方括号表示对a的第一重指针减一,第二个方括号表示对a的第二重指针加1。
不一定会报错的。比如假定一个二维数组
A[10][10]
如果此时的a=&A[2][1]就不会报错了。此时的a[-1][1]就等于A[1][2];

回答2:

情况分两种不同编译器处理不一样

  1. 有的编译器会直接报错

  2. 有的编译器会把-1转成unsigned int 即FFFFF...FF ,运行的时候数组下标越界,程序终止了

回答3:

不行,可能是编译器问题,才不报错,明显越界!

回答4:

报错,下标越界。