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 = 123a是一个变量,而不是一个常量
如果是
const int a=123那么a才是一个常量。
至于“放进”tab中,无非就是将一个int类型数值复制到无符号字符型数组的某个位置,这就复杂了,如果是
tab[10]=a那么在一些编译器下会编译出错,因为出现了数据截断,如果是
*((int *)(&tab[10])) = a那么a能全放进去,但是会覆盖掉tab[10]到tab[13]的4个字节数据