给定一段代码:
int a[5];
printf("%u\n",&a[3]-&a[0]);
printf("%u",&a[0]-&a[3]);
Run Code Online (Sandbox Code Playgroud)
现在,地址减法中第一行的输出是根据公式((addg - add)/数据类型的大小),其中 addg 大于 add。gcc 中上述代码段的输出是:
3
4294967293
Run Code Online (Sandbox Code Playgroud)
第一行输出(即 3)很明显,但是第二个输出的含义是什么,或者从较小的地址中减去较大的地址(即添加 - addg)时会发生什么?