c语言数组
数组
一维数组
定义
定义方式: 数据类型 数据名[常量表达式]
例:int a[10]; float b[5]; char c[20];
a,b,c为数组名,表示内存首地址,是***地址常量***
注:=左边不能为地址常量。
初始化
初始化方式:int a[4]={1,2,3,4};
等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4;
注:
(1)数据不初始化,其元素值为随机数;
(2)初值个数不能多于数组长度;
(3)只给部分数组元素赋初值;
(4)当全部数组元素赋初值时,可不指定数组长度;
例:
int a[5]={6,2,3}; 等价于:a[0]=6; a[1]=2; a[2]=3; a[3]=0; a[4]=0;
引用
(1)数组必须***先定义后使用***
(2)只能逐个引用数组元素,不能一次引用整个数组
(3)一维数组的下标表示法
数组名[下标]
其中:下标可以是正整型常量或表达式
二维数组
定义、引用及初始化
定义方式:数据类型 数组名[常量表达式1][常量表达式2] ={初始化数据};
初始化方式:
(1)直接分行赋值
例:int a[2][3]={{123},{456}};
(2)将所有数据写在花括弧内,按数组排序的顺序对各元素赋初值
例:int a[2][3]={1,2,3,4,5,6};
(3)可以对部分元素赋初值
例:int a[2][3]={{1},{5},{9}};
(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省
字符数组
初始化
(1)逐个字符赋值 char ch[3] = {‘b’,‘o’,‘y’};
(2)用字符串常量 char ch[4] = “boy”;
注:1."boy"在内存中占4个字节,千万不能漏掉’\0’
2.字符数组初始化可以省去数组长度比如 char ch[]=“boy”;则ch数组默认大小就是初始化的大小。
结束标志
结束标志:***’\0’***
字符数组的输入/输出
(1)逐个字符输入/输出:%c
(2)整个字符串输入/输出:%s;用%s输出时,遇’\0’结束;%s输入时,遇空格或回车结束
字符串处理函数
(1)字符串输入函数gets
格式:gets(字符数组)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加’\0’
说明:输入字符串长度应小于字符数组维数
(2)字符串输出函数puts
格式:puts(字符数组)
功能:向显示器输出字符串,输出结束后再输出一个换行符
说明:字符数组必须以’\0’结束
(3)字符串连接函数stract
格式:stract(字符数组1,字符数组2)
功能:把字符数组2连到字符数组1后面
返回值:返回字符数组1的首地址,即字符数组1发生变化,字符数组2不变。
(4)字符串拷贝函数strcpy
格式:strcpy(字符数组1,字符串2)
功能:将字符串2,拷贝到字符数组1中去
返回值:返回字符数组1的首地址
说明:拷贝时’\0’一同拷贝;用于字符数组赋值,不能使用赋值语句为一个字符数组赋值,因为=左边不能说常量;
(5)字符串比较函数strcmp
格式:strcmp(字符串1,字符串2)
功能:比较两个字符串大小
比较规则:对两个字符串从左至右逐个字符比较(ASCLL码),直到遇到不同字符或’\0’为止
返回值:返回int型整数,字符串1>字符串2,返回1;字符串1<字符串2,返回-1;字符串1==字符串2,返回0;
说明:字符串比较不能用"= =",必须用strcmp
(6)字符串长度函数strlen
格式:strlen(字符数组)
功能:计算字符串长度
返回值:返回字符串实际长度,不包括’\0’
(7)内存处理函数
1.strncpy
2.strncmp
3.strcasecmp
4.memcpy
5.memcmp
6.memset
(8)sprintf和sscanf
sprintf();将输出到字符数组;
格式:sprintf ( buf1,"%s",ch);将字符数组ch中的字符串输出到字符数组buf1;
sscanf();将内存中的字符串输入字符数组;
格式:sscanf(ch,"%s",buf2);将字符数组ch中的字符串输入到字符数组buf2;
- C语言学习笔记之动态分配数组空间
- C语言之指针、数组和函数
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- C语言之数组
- C语言数组
- Fortran和 C语言中数组的存储方式
- (C语言)对于一个有序数组,输入一个元素。将该元素在数组中的位置索引出来(折半查找)。例如原数组为:1 2 6 7 9,输入待查找的元素如果没有找到则返回-1。
- Mohican_18/3/7 C语言—回顾数组 const和define的区别
- C语言中的数组指针与指针数组
- [C]c语言中,scanf里面要是数组要不要加&?
- 对C语言中的字符串,字符数组以及用指针表示字符串的理解
- C语言中指针与函数的关联2(数组的降级)
- c语言编程求一个数组中值是偶数的元素之和
- C语言之坑二--定义不定长数组
- C语言,有5名学生保存在结构体数组中,编程按学生的成绩升序排序,按学生的姓名降序排序,按年龄从低到高排序
- 菜鸟学C语言二:数组前后元素的互换逆置
- C语言数组题目训练2
- [转载]c语言中数组作为函数参数
- C语言--解析数组
- c语言一维数组的定义、初始化