C语言里有常量数组吗?

Python013

C语言里有常量数组吗?,第1张

iop_conf_t 八成是typedef声明的数组类型

注意定义的格式是

const iop_conf_t iop_conf_tab[4][32] =

{

    {

        {x,x,x,x,x,x},        ......x32

    },......x4

}

所以本质上是一个三维数组

还有这样定义最多说是数据元素是常量,数组元素常量化应该是定义为

iop_conf_t const iop_conf_tab[4][32]

数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。

整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10],设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。

因此,在使用scanf()函数的时候,变量c前是不能添加地址运算符&的,scanf("%s",&c);则是错误的的写法。

扩展资料:

数组名的作用:

1、声明数组变量的作用:

数组说明的一般形式为:类型说明符 数组名 [常量表达式]; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。

2、应用数组元素:

数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

参考资料来源:百度百科-数组

我假设你问题中的语句写错了,那么如果是

int a = 123

a是一个变量,而不是一个常量

如果是

const int a=123

那么a才是一个常量。

至于“放进”tab中,无非就是将一个int类型数值复制到无符号字符型数组的某个位置,这就复杂了,如果是

tab[10]=a

那么在一些编译器下会编译出错,因为出现了数据截断,如果是

*((int *)(&tab[10])) = a

那么a能全放进去,但是会覆盖掉tab[10]到tab[13]的4个字节数据