您的位置:首页 > 编程语言 > C语言/C++

c语言数组

2020-03-14 22:10 51 查看

数组

一维数组

定义

定义方式: 数据类型 数据名[常量表达式]
例: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;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: