今天看到这样一种写法,原文链接:一个有趣的C语言程序
1 | #include <stdio.h> |
1 | output: 2 |
int x[5],x实际上保存的是这个数组首元素的地址也就是&x[0].
a[x]的等效写法是*(a+&x).因为上面说了x实际上是x[0].
所以可以进一步写成*(a+&x[0]),又因为a=1所以可以替换成*(&x[0]+1),也就是x[1].
所以就是x[1]对应的值:2
由此我又想到了二位数组
1 | #include <stdio.h> |
1 | output: 4 |
感觉好神奇,而且在之前不知道在哪看到__c语言的数组其实就是指针的合集__,而且最近要用链表,更觉得链表和数组差不多.