6.3 字符数组-1

一.字符数组的定义方式

字符数组:用来存放字符数据的数组。字符数组中的一个元素存放一个字符;

char c[10];   //c[0]...c[9]
c[0] = 'I';
c[1] = '';
c[2] = 'a';
c[3] = 'm';
c[4] = '';
c[5] = 'h';
c[6] = 'a';
c[7] = 'p';
c[8] = 'p';
c[9] = 'y';

在这里插入图片描述

二.字符数组的初始化

1.逐个字符赋给数组中的元素

char c[10] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};   //c[0]...c[9]

2.提供的初值个数和预定的数组长度相同

如果提供的初值个数和预定的数组长度相同,定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。

char c[] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};   //c[0]...c[9]

3.初值个数 > 数组长度

初值个数 > 数组长度 ,则提示语法错误

char c[8] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};   //c[0]...c[9]

4.初值个数 < 数组长度

初值个数 < 数组长度,则只将这些字符赋值给数组中前面的那些元素,其余的元素值可能会给\0,也可能无法确定,所以不建议使用

char c[12] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};   //c[0]...c[9]

上述初始化相当于

char[10] = 0;  //0 = '0'
char[11] = 0;  //清零

三.二维数组的引用

char diamond[3][3] = { {''  ,'*',  ''},  {'*' ,  ''  ,  '*'},  {''  ,'*',  ''}};

四.字符串和字符串结束标记(重点)

如果提供的初值个数和预定的数组长度相同,定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。

char c[] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};   //c[0]...c[9]

补充一个初始化字符数组的方法:用字符串来初始化字符数组

char d[] = {"I am happy"};   //系统会自动在字符串末尾增加一个  \0,叫做字符串结束标记
                             //11个元素,c[0]...c[10]
                             //字符串结束标记,用来标记一个字符串的结束。
                             //为了测定一个字符串的实际长度,c语言规定了一个字符串结束标记,就是这个\0。
                             //如果一个字符串,他的第10个字符为'\0',则此字符串的有效字符为9个。
                             //也就是说,在遇到字符'\0'的时候,表示字符串结束,由'\0'前边的字符组成字符串。
                             //这个"I am happy"有10个有效字符,但是他在内存中占11个字节,因为最后一个字节放的是'\0'。
char c[] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y'};
char d[] = {"I am happy"};
两者不等价
char c[] = {'I', '' , 'a' , 'm' , '' , 'h' ,'a', 'p',  'p', 'y' , '\0'};   //这种赋值方法罕见
char d[] = {"I am happy"};
两者等价

五.整理至https://appd872nnyh9503.pc.xiaoe-tech.com/index的笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值