文章目录
🌿前言:在我看来,书应该越读越薄的,所以我的笔记尽量记录了每一个点,可供复习与查阅,但没有详细的解释。我的C语言的笔记是在谭浩强老师的C程序设计(第五版)的基础上总结归纳的,结合了一些我自己的见解。如果是有其他见解 ,也欢迎大家提出。
一、一维数组
数组中的每一个元素都属于同一个数据类型
1.定义
类型说明符 数组名[常量表达式]
· 下标是从0开始的(数组a[10]中没有a[10]这个数)
· 常量表达式中可以包括常量和符号常量(a[3+5]是合法的)
2.引用
数组名[下标]
3.初始化
(1)在定义数组时对全部数组元素赋予初值
(2)只给部分元素赋值,剩下的系统自动赋为零
(3)全部赋初值时由于数量已经确定,可以不指定数组长度
二、二维数组
1.定义
类型说明符 数组名 [常量表达式] [常量表达式 ]
2.引用
数组名 [下标] [下标]
3.初始化
(1)分行给二维数组赋值
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)也可以将所以数据写在一个花括号里,按顺序赋初值
(3)对部分元素赋初值
int a[3][4]={{1},{5},{9}};//只对第一列赋值
(4)如果对全部元素都赋值,第一维的长度可省,第二维不可
三、字符数组
1.定义(同上)
2.引用
3.初始化
(1)用字符串常量使字符数组初始化
char c[]={"i am happy"} //也可以省略花括号
(2)其余元素自动定为空字符(‘/0’) 其余同
4.字符和字符串结束标志(‘/0’)
5.字符数组的输入输出
(1)逐个字符输入输出,用格式符“%c”,
(2)整串字符一次输入输出,用格式符“%s”
· 用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名
char c[10]={"china"};
printf("%s",c);
(3)scanf函数中的输入项如果是字符数组名,不用加地址符&
scanf("%s",c);
6.字符串处理函数
(1)puts(字符数组)——输出一个字符串
puts(str);
· 其输出字符中可包含转义字符
(2)gets(字符数组)——输入一个字符串
(3)strcat(字符数组1,字符数组2)——字符串连接
· 把字符串2连接到字符串1后面,结果放到字符数组1中;
· 字符数组1必须足够大以便容纳后面的字符串2
(4)strcpy/strncpy(字符数组1,字符串2/字符数组2)——将字符串2/字符数组2复制到字符数组1中
char str1[10],str2[]="China";
strcpy(str1,str2);
(5)strcmp(字符串1,字符串2)——字符串比较
· 如果出现不同字符,则以第一对出现不同的字符的比较结果为准
· 出现在英语字典中位置后面的大,小写字母比大写字母大
· 比较结果最后会变成函数值,1>2,正整数,1<2,负整数
if(strcmp(str1,str2)>0)
printf("yes");
(6)strlen(字符数组)——测试字符串长度
· 也可以直接测试字符串常量的长度
(7)strlwr(字符串)——将字符串中大写的字母换成小写的
(8)strupr(字符串)——将字符串中小写的字母换成大写的