C语言允许数组下标是负数

分清声明还语句
声明里括号里数字能负例 int a[-2]; 错数组大小能负
 
语句里括号C/C++ 看成运算符叫标点符号
数组元素和指针有恒等关系:
a[i] == *(a+i)
所i  负 时候a[i] == *(a-  fabs(i))只要 a-fabs(i) 地址里 有 数值拿来 运算使用
 
"多书上说数组下标能负"  -- 因初级教材
 
高级教材里甚至提 a[i] == i[a]  也正确 (有人知道里问过我也回答过)

当只能变量形式能写阿拉伯数字事实上也确确实实正确。


也就是说a所对应的地址 - 1,只要这个地址里面有内容就可以。

你可能感兴趣的:(C基础)