C语言问题?

一维数组名a到底是第一个元素a[0]的地址还是装着a[0]地址的一个常量啊或者是装着a[0]地址的一个变量?如果数组名a是a[0]的地址讲不通啊,因为地址是一串16进制的数字编号?什么又是常量啊,数字5是不是常量啊?我只知道变量是个装着数据的容器。谁来给个清晰的回答啊,书里又讲不清楚

常量就是不可改变的量,包括数值常量、字符常量、表达式常量、符号常量。
比如:数值5,字符串“abc”,还有用const定义的符号常量(const int pi=3.14中的pi)。
数组名,就是数组第一个元素的地址。数组名是常量,由编译器分配具体的值,其值不可改变。追问

由编译器分配具体的值,这么说是不是意味着常量也是个容器,里面装着比如数字5,6,7等等,那数字5你又说是常量,感觉好矛盾啊。刚问了别人又说5是字面量

追答

我前面说了,符号常量也是常量,你看上去它跟变量差不多,就是它只能装一次值,然后就不能改变了。数组名类似定义的符号常量。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-03
数组名是个指针,该指针的值为数组第一个元素的地址。
第2个回答  2020-06-30
数组名是数组首元素地址是常量,不可改变,5是常量,变量可以赋值。
相似回答