文章目录
字符数组基本介绍
用来存放字符的数组称为字符数组, 看几个案例
1)char a[10]; //一维字符数组, 长度为 10
2)char b[5][10]; //二维字符数组, 后面我们详细介绍二维数组
3)char c[20]={‘c’, ’ ', ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,‘m’}; // 给部分数组元素赋值
字符数组实际上是一系列字符的集合,也就是字符串(String)。在 C 语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串。
字符串注意事项
1)在 C 语言中,字符串实际上是使用 null 字符 (’\0’) 终止的一维字符数组。因此,一个以 null 结尾的字符串, 包含了组成字符串的字符。
2)’\0’是 ASCII 码表中的第 0 个字符,用 NUL 表示,称为空字符。该字符既不能显示,也不是控制字符,输出该 字符不会有任何效果,它在 C 语言中仅作为字符串的结束标志。
3)字符数组(字符串)在内存中的布局分析 [案例]

4)思考 char str[3] = {‘a’,‘b’,‘c’} 输出什么? 为什么?
输出abc
结论:如果在给某个字符数组赋值时,
(1)赋给的元素的个数小于该数组的长度,则会自动在后面加 ‘\0’, 表示 字符串结束,
(2)赋给的元素的个数等于该数组的长度,则不会自动添加 ‘\0’
char str2[] = {‘t’,‘m’,‘o’} 输出什么? 输出的是 tmo 乱码
5)案例演示
#include <stdio.h>
void main() {
//c 是一个一维字符数组,给部分元素赋值
char c[7]={
't','o','m'};
char str[4] = {
'a','b','c'};
char str2[] = {
'j','a','c','k'}; // 这个后面系统也不会自动添加 '\0'
char str3[] = {
't','m','o'};
//输出 c , 系统会这样处理
//1. 从第一个字符开始输出,直到遇到 \0 , 表示该字符串结束
printf("\nc=%s", c);
printf("\nstr=%s", str); // abc?

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



