数组:数组是用于储存多个相同类型数据的集合。
条件:1.这些数的类型必须相同。2.这些数在内存中必须是连续存储的。
一:一维数组
一维数组定义:
类型说明符 数组名[常量表达式];
[ ]:数组运算符,单目运算符
[常量表达式]:其中常量表达式为———元素个数———数组长度,下标从0开始。
例如:int a[6];
编译时分配连续内存,内存字节数=数组长度*sizeof.
a表示 数组名,a[0]表示内存首地址
a-> 0 a[0] |
1 a[1] |
2 a[2] |
3 a[3] |
4 a[4] |
5 a[5] |
一维数组引用
1.数组必须先定义,后使用。
2.只能逐个引用数组元素,不能一次引用整个数组。
3.数组元素表示形式,数组名[下标],下标可以是常量或者整形表达式。
一维数组初始化
int a[5]={1,2,3,4,5};
=>a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5;
特例
1.数组不初始化,其元素为随机值。
2.对static数组元素不赋初值,系统会自动赋值0
43当全部数组元素赋初值的时候,可以不指定数组长度。
static int a[3];
=>a[0]=0,a[1]=0,a[2]=0;
4.只给部分元素赋初值,则未赋初值的自动赋值0;
int a[3]={1,3};
=>a[0]=1,a[1]=3,a[2]=0;
二
目录
:二维数组
二维数组定义
类型说明符 数组名[常量表达式][常量表达式];
行数 列数
例如 int a[3][2];
数组元素的存放顺序
0 a[0][0] |
1 a[0][1] |
2 a[1][0] |
3 a[1][1] |
4 a[2][0] |
5 a[2][1] |
数组元素的存放顺序
a[0][0] a[0][1] 原因:内存是一维的
a[1][0] a[1][1] 二维数组:按行序优先
a[2][0] a[2][1]
任意元素a[i][j]在数组的位置计算公式为:
i*n+j
a——数组的起始地址 a[0]——0行0列的元素的地址。
二维数组的引用
形式: 数组名[下标][下标]
二维数组元素的初始化
1.分行初始化
2.按元素排列顺序初始化
三:字符数组和字符串
字符数组
定义;每个元素存一个字符,主要用来对字符串操作。
字符数据的初始化;
1:逐个字符赋值
char ch[5]={'H','e','l','l','o'}
H e l l o ch[0] ch[1] ch[2] ch[3] ch[4]
2:用字符串常量
char ch[6]={"Hello"};
H e l l o \0 ch[0] ch[1] ch[2] ch[3] ch[4] ch[5]
字符串:
1.无字符串变量,用字符串数组处理字符串。
2.字符串结束标志;'\0';
字符串的输入与输出:
输入
用scanf函数
1.输入单个字符:%c用循环语句;
2.输入字符串 :%s printf("%s",str);
用gets函数
1.gets(str);
输c出
用printf函数
1.输出单个字符:%c用循环语句;
2.输出字符串 :%s printf("%s",str);
用puts函数
1.puts(str);
常用的字符串处理函数包含在string头文件中
字符串输出函数puts
格式:puts(字符数组1)
功能:向显示器输出字符串(输出完换行)
说明:字符数组必须以'\0'结尾
字符串输入函数gets
格式:gets(字符数组1)
功能:从键盘输入一个以回车结束的字符串放入字符数组中,并且自动加'\0';
说明:输入串的长度应该小于字符数组维数。
字符串连接函数strcat
格式:strcat(字符数组1,字符数组2)
功能:把字符数组2接到字符数组1后面。
返值:返回字符数组1的首地址。
说明:1.字符数组1必须足够大
2.连接前,两串都以'\0'结束,连接后串1取消,新串后面加'\0';
字符串连接函数strcpy
格式:strcpy(字符数组1,字符串2)
功能:把字符串2,拷贝到字符数组1中。
返值:返回字符数组1的首地址。
说明:1.字符数组1必须足够大
2.拷贝时'\0'一起拷贝;
3.不能使用赋值语句为一个字符数组赋值。
字符串比较函数strcmp
格式: strcmp(字符串1,字符串2)
功能: 比较两个字符串\n比较规则: 对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\\0’为止\n返值: 返回int型整数,
a. 若字符串1\u003C 字符串2, 返回负整数
b. 若字符串1> 字符串2, 返回正整数
c. 若字符串1== 字符串2, 返回零
说明: 字符串比较不能用“==”,必须用strcmp
字符串长度函数strlen
字符串长度函数strlen
格式:strlen(字符数组)
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内