书上说,数组名是个指针常量,指向数组首元素的地址。于是我做了个实验:
#include <stdio.h>
int main(void)
{
int a[3] = {1, 2, 3};
printf("%p %p %p", &a, a, &a[0]);
return 0;
}
运行结果如下:
000000000061FE14 000000000061FE14 000000000061FE14
疑惑来了:
- 数组名作为常量,怎能用&求出其保存地址呢?难道是常量表达式?
2.就算是常量表达式,那么它指向的地址怎么和保存自身的地址相等呢?
当然,数组怎么用我会,研究这个有点较真了,但还是希望专家答疑解惑。