在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 1801|回复: 0

[资料] 数组说明

[复制链接]
发表于 2016-3-1 14:55:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

格式如下:

[存储类类型] 类型说明符 [修饰符] 标识符 [=初值符][,标识符[=初值]]…

1)一维数组

格式如下:

类型说明符 标识符 [常量表达式] [={初值,初值,…}]

char 标识符[ ]=“字符串”;

标识符后跟方括号[ ]是一个一维数组的特征。定义时若数组未赋初值,则当方括号用于数组时,其括号用于数组时,其括号内必须有常量表达式,表示为数组分配内存的大小。初值缺省时数组各元素为随机值;需赋初值时,使用等号进行赋初值,后面跟花括号,花括号内使用逗号分隔的初值表。初值的个数要小于或等于常量表达式的值,初值为0的元素可以只用逗号占位而不写初值。若初值的个数少于常量表达式值,则其后的缺省项由编译器自动以0值补之。

字符型数组时例外,它允许标识符后跟的方括号内为空,但必须赋初值。赋初值用等号,初值是双引号括起的字符串。字符数组的长度由编译器自动完成,其值为串中字符数加1(多结尾符‘\0’).

示例
本例定义了8段数码管显示0~F的符号数组,以及2个用于UART操作中的字符型数组。

intSymbol[]={DIGIT_0,DIGIT_1,DIGIT_2,DIGIT_3,DIGIT_4,DIGIT_5,DIGIT_6,DIGIT_7,

                     DIGIT_8,DIGIT_9,DIGIT_A,DIGIT_B,DIGIT_C,DIGIT_D,DIGIT_E,DIGIT_F,}

char str[30];

char string[256];

1)
一维指针数组和一维数组指针

格式如下:

类型说明符  * 标识符 [常量表达式] [={地址,地址,…}]

类型说明符
*标识符)[ ][=数组标识符]

前者是一维指针数组,本质上是一个数组,只是它的元素是指针,即数组中存放的是其变量的地址,它在字符串排序中特别有用;后者是一维数组指针或叫数组指针,它本质上是一个指针,只是该指针指向的是一个数组。指针指向数组的首地址,但指针不能指向数组中的除首地址外的其他元素的地址。也可将数组指针理解为行指针,指针变化后可指向二维数组不同的行。数组指针不需要指明所指向的数组有多少元素,所以下标方括号内可以是空的。在C语言中,数组标识符并不代表整个数组,它只作为数组的首地址,即数组第一个元素的地址。虽然指针变量的值是地址,但指针和地址是有区别的。指针是个对象,在内存中被分配有空间,只不过该对象的被容不是变量而是可变的地址,而数组标识符是已分配过内存的数组的首地址。

2)
二维数组

格式如下:

类型说明符
标识符[m][n] [={{初值表}{初值表}…}];

上述格式是m×n个元素的二维数组。标识符独立使用时,它代表的是二维数组在内存中的首地址,它与“&标识符[0][0] ”意义相同。数组标识符是一个地址变量,不能用作左值,可用在表达式中,而不可用于赋值运算符的左侧。在C语言中,二维数组在内存中的排列次序是先放第一行的的n列,再放第二行的n列,直到第m行的n列。赋初值的顺序也是按同样的序列。初始化时,某些元素的初值可以省略,缺省初值被置为0.

3)
二维指针数组

格式如下:

类型说明符   * 标识符[m][n][={ {地址表}{地址表…}}]

上述格式是m×n个元素的二维指针数组。标识符单独使用时,它代表的是指针数组的首地址。由于这个首地址的内容是指针,它指向的内容才是变量(地址变量)。因此,指针数组标识符具有二重指针性质,是一个指针的指针。指针数组标识符是一个地址常量,不能用作左值,但可作为指针赋初值。

4)
二维数组指针

格式如下:

类型说明符 *标识符)[ ][n][=数组标识符]

上述格式是一个二维数组的指针,这个指针指向的是一个二维数组,如前面的一维数组指针的介绍,只是二位数组指针指向的数组时二维的。为了使这个指针能指向二维数组的任一个元素,说明时应给出第二个方括号中的下标常量,至于第一个方括号中的下标量无需给出,给出也不为错。

5)
多重指针

格式如下:

类型说明符    *     *     标识符[&=指针]

上述格式定义了一个多重指针变量,即指针的指针。可用一个二维指针数组的标识符为它赋初值。

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-10 16:14 , Processed in 0.013527 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表