一维字符型数组+二维整型数组

一维字符型数组+二维整型数组 目录一、一维字符型数组1. 核心特性2. 字符型数组定义3. 字符数组存储空间4. 字符型数组初始化1全部初始化2局部初始化3默认初始化省略数组长度5. 字符串打印6. 字符串接收7. 字符串常用库函数8. 课后练习二、二维整型数组1. 二维数组定义2. 二维数组元素访问3. 二维数组存储规则4. 数组层级理解5. 二维数组初始化1全部初始化2局部初始化3默认初始化省略行数三、高频易错考点汇总C语言数组知识点总结一、一维字符型数组1. 核心特性C语言不存在独立的字符串类型字符串的存储与操作依靠字符型数组实现。2. 字符型数组定义格式数据类型 数组名[元素个数];[]内元素个数必须是常量数组容量必须充足要预留位置存放字符串末尾的结束标记\0。示例char str[20];数组元素访问方式str[0]、str[1] ... str[19]通过下标访问每一个字符。3. 字符数组存储空间字符型数组占用内存大小 数组元素总个数计算公式获取元素数量sizeof(a) / sizeof(a[0])。4. 字符型数组初始化注意初始化和赋值是两种不同操作数组定义完成后不能直接使用数组名整体赋值。1全部初始化charstr[6]{h,e,l,l,o,\0};charstr[6]{hello};charstr[6]hello;2局部初始化charstr[6]{h,e,l};charstr[6]{hel};charstr[6]hel;charstr[6]{0};规则未给定初始值的数组元素自动初始化为0。区分三个易混符号0数字零二进制00000000等价于\0\0字符串结束符二进制00000000等价于00字符0二进制00110000ASCII值为483默认初始化省略数组长度charstr[]{h,e,l,l,\0};charstr[]{hel};charstr[]hel;编译器自动根据初始化内容计算数组长度开发中尽量避免此种写法。5. 字符串打印printf(%s, 字符数组名);charstr[20]{hello world};printf(str %s\n,str);puts(字符数组名);charstr[20]{hello world};puts(str);特性puts输出字符串后会自动额外打印换行符\n。6. 字符串接收scanf(%s, str);charstr[32]{0};scanf(%s,str);缺陷遇到空格、回车会停止读取。2.gets(str);charstr[32]{0};gets(str);补充gets函数存在缓冲区溢出风险新标准C语言已经废弃该函数。7. 字符串常用库函数使用以下函数需要引入头文件string.h字符串长度统计 strlen()strlen(数组名)统计有效字符串长度不包含末尾\0sizeof(数组名)获取整个数组占用内存总大小包含全部空间charstr[32]{hello};intlenstrlen(str);字符串拷贝 strcpy()strcpy(str,hello world);注意目标字符数组空间必须足够大能够存放源字符串包含\0否则发生内存越界。字符串拼接 strcat()charstr1[32]{hello};charstr2[32]{world};strcat(str1,str2);注意目标数组str1剩余空间必须容纳拼接后的完整字符串。字符串比较 strcmp()retstrcmp(str1,str2);比较规则从左向右依次对比字符ASCII码遇到不同字符立即结束比较。返回值规则返回0两个字符串完全相等返回0第一个字符串大于第二个字符串返回0第一个字符串小于第二个字符串二、二维整型数组1. 二维数组定义格式数据类型 数组名[行数][列数];示例int a[2][3];要求行数、列数方括号内必须填写常量。2. 二维数组元素访问格式数组名[行下标][列下标]示例a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]3. 二维数组存储规则数组占用总内存 单个元素所占字节 × 元素总个数内存存放顺序逐行、从左到右连续存储4. 数组层级理解二维数组可以看作由多个一维数组组成的一维数组N维数组可以看作由多个N-1维数组组成的一维数组。5. 二维数组初始化1全部初始化inta[2][3]{1,2,3,4,5,6};inta[2][3]{{1,2,3},{4,5,6}};2局部初始化inta[2][3]{1,2,3,4};inta[2][3]{{1,2},{3}};inta[2][3]{0};inta[2][3]{{0}};未显式初始化的元素默认自动赋值为0。3默认初始化省略行数重点列数绝对不能省略行数可以由编译器自动推算inta[][3]{1,2,3,4,5,6};inta[][3]{1,2,3,4};inta[][3]{{1,2},{3}};