1.1 一维数组
(1)定义形式:数据类型符 数组变量名[整型常量表达式]; eg:int a[10]
(2)数组所占内存单元的字节数=数组大小 * sizeof(数组元素类型)
(3)数组的引用:只能引用数组中的各个数据单元。
引用格式:数组变量名[下标] 下标从0开始
1.2 一维数组的赋值
格式:数据类型符 数据类型名[常量表达式]={表达式1,表达式2,…,表达式n}
PS: 1)如f表达式的个数小于数组的个数,则未指定的数组元素被赋值为0
2)如果对全部数组元素赋值时,可以省略变量的大小,此时数组变量的实际大小就是初值列表中表达式的个数。全部赋值:int a[3]={1,2,3};
(1)使用赋值语句
(2)使用循环语句
(3)使用memset函数 标准库函数memset函数可实现对某内存块的各字节单元整体赋同样的值(可对字符数组赋值)
memset(s,’a’,10)形式参数s是一指针变量,代表内存块的首地址,10代表相邻的字节数
【memset(s,0,10*sizeof(int))清0】
(4)使用memcpy函数实现数组间的赋值
对于两个数据类型和大小相同的数组,如果将其中一个数组各单元的值要赋值给另一个数组的各数据单元,可以用循环,也可用memcpy函数
memcpy(数组名1,数组名2,数组大小*sizeof(数组元素类型))
PS:在使用memset和memcpy函数时,源程序中要包含头文件“string.h”或“memory.h”
2.1二维数组
定义:数组变量名[下标1][下标2]
2.2 二维数组的赋值
1)对全部数组元素赋值
int a[2][3]={{1,,2,3},{4,5,6}};
2)用memset和memcpy函数进行赋值
3.1字符串的本质
字符串是一种以‘\0’结尾的字符数组
字符串可以通过字符数组变量来存放,以下结果等价
char str[ ]=”china”;
char str[ ]={“china”}
char str[ ]={‘c’,’h’,’i’,’n’,’a’,’\0’};
3.2字符及字符串操作常用函数
1)利用gets()函数输入字符串(gets函数能接收包含空格字符的字符串)
gets(字符数组变量名); 遇到回车结束,但是回车换行符’\n’不会作为有效字符储存到字符数组中,而是转换成字符串结束标志‘\0’来储存
调用格式:
char str[80];
gets(str);
2)利用puts函数输出字符串
char str[80];
puts(str);//输出时将字符串结束标志’\0’转换成换行符‘\n’
3)求字符串长度
strlen(字符串的地址)
char str[ ]=’0123456789’
strlen(str);//值为10
strlen(&str[5]);//值为5
4)字符串的复制
strcpy、strncpy、memcpy(都要用string.h头文件)
1、strcpy
strcpy(字符数组1,字符串2或包含字符串的字符数组2)
功能:将字符串2或字符数组中的字符串,包括‘\0’复制到字符数组1中
2、strncpy(部分复制)
strncpy(字符数组1,字符串,长度n);
功能:将字符串的前n个字符复制到字符数组1中,但并不在结尾加‘\0’
5)字符串的比较
strcmp、stricmp、strncmp、strnicmp(头文件都是string.h)
strcmp(字符串1,字符串2);
功能:比较两个字符串的大小,如果字符串1大于字符串2,则返回一个正整数,反之,返回一个负整数,如果字符串相等,返回0
stricmp函数和strcmp函数区别在于stricmp函数不区分大小写,其余全部相同
strncmp(字符串1,字符串2,长度n)
功能:将字符串1前n个字符与字符串2前n个字符的字串进行比较,返回值及比较规则同strcmp
strnicmp函数和strncmp函数区别在于stricmp函数不区分大小写,其余全部相同
3.3字符串数组
char 字符串数组名 [行数m][列数n]={字符串1,字符串2,…,字符串m};
每个字符串的长度都应该小于n-1,最后一个放字符串结束标志‘\0’