2.1一维数组和字符串
1.字符数组
字符数组是元素得数据类型为字符类型得数组
—char c[10],ch[3][4];
字符数组的初始化
—逐个字符赋值
—用字符串常量
2.字符数组初始化
可以写成“boy"
0 ‘\0’ null 其实都是0 0就是整数0 ‘\0’的ascii值是0 null是宏定义它代表的也是0
数值经常写0 字符写‘\0’ 指针写null
n是数组的元素个数 数组/字符
#if 0 相当一个宏 if 0意思是如果if后是真就成立if后面是假就不成立 成立的时候这段代码参与编译不成立就不参与编译
打印数组名就是数组的起始地址(%p arr2 这里)
可以看出数组是连续存储的(所以是不正确的)
字符串
C语言中无字符串变量,用字符数组处理字符串 字符串结束标志:'\0'
2.2二维字符数组和字符串
可以代替
“. . *” ". * . *" 第三行不能换
字符串打印可以不写循环直接%s
n行数:用整个数组占的空间/一行所占用的空间=总行数
m列数:用一行占用的空间/这一行任何一个元素所占用的空间
2.3字符串逆序输出
输入一个字符串,然后将其逆序输出。
有两种1.gets 数据不变 逆序输出 2.gets 数据改变 正常输出(数据本身就得到了逆序)
逆序输出(没有输入)
上面的#define N 20没用到
gets得到的一定是字符串,一定会/0结尾
总空间/一个的空间=元素个数
gest的警告是因为数组当中有一个长度,而实际输入的内容如果输入值超过20数组就多了,最多输入19个字符,如果输多数组内存访问越界。
如果写一个0默认后面是0,哪怕循环打多了也没事。其实没必要循环到0,因为字符串逆序,数组大用户输入的值少,
字符串strlen函数 :功能计算字符串长度 有头文件 n就是实际字符串长度 用sizeof除是数组的总空间,而用户输入的没有那么多
2.上面的是逆序输出只能写循环
puts会自动加换行符
gets函数默认有\0