我找到了一个计算数字平方的函数:
int p(int n) { int a[n]; //works on C99 and above return (&a)[n] - a; }
它返回n 2的值.问题是,它是如何做到的?经过一点点测试后,我发现之间是(&a)[k]和/ .这是为什么?(&a)[k+1]sizeof(a)sizeof(int)
(&a)[k]
(&a)[k+1]
sizeof(a)
sizeof(int)
c arrays pointers c99 variable-length-array
arrays ×1
c ×1
c99 ×1
pointers ×1
variable-length-array ×1