数组
一维数组
1、定义格式如下:
类型说明符 数组名[常量表达式]
例如:int a[10];
2、初始化
- 定义时初始化:int a[5]={1,2,3,4,5};
- 只给部分元素赋值:int a[5]={1,2,3};
- 给数组全部赋初值,定义时可以不指定数组长度:int a[]={1,2,3,4,5};
- 通过键盘初始化的方法:scanf(“%d”,&a[i]);
3、注意:
- 数组的各个元素在内存中,从第一个元素开始一次连续存储,其中所有的元素具有相同的数据类型。
- 数组不能整体使用,只能使用其各个元素。
- 访问一维数组的程序结构通常是循环结构,一般是单循环,有时也会使用多重循环。
二维数组
1、定义格式如下:
类型说明符 数组名 [常量表达式][常量表达式]
例如:int a[3][4];
定义a为3行4列的整型数组,共有12个元素。
2、初始化
- 分行给二维数组赋初值:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
- 将所有数据写在一个花括号内:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- 可以部分元素赋初值:int a[3][4]={{1},{2},{3}};
- 如果对全部元素都赋初值,定义是可以省略第一维的长度,但第二维不能省略:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- 通过键盘逐个对元素赋初值:scanf(“%d”,&a[i][j]);
3、二维数组的引用:数组名[下标][下标]
字符数组
1、定义格式:
例如:char c[10];
定义c为字符数组,包含10个元素
2、初始化
- 逐个字符赋给字符数组:char c[10]={‘p’,’a’,’r’,’t’,’y’};
- 如果提供的初值个数与预定的数组长度相同,定义时可以省略数组长度:char c[]={‘p’,’a’,’r’,’t’,’y’};
3、字符数组的输入输出
- 逐个字符输入输出,采用格式控制符%c;
- 整体输入输出,使用格式控制符%s;
ps:当用scanf和printf对字符串整体输入或输出时,用格式控制符”%s”。但是”%s”读入时遇到空格或回车就结束读操作,自动加结束标志“\0”,输出时遇到“\0”就结束输出操作,因此若读入的字符包含空格就不能使用“%s”。
4、字符串处理函数
- gets,puts分别用于字符串的整体输入输出。
- strlen:测试两个字符串。格式:strlen(字符串)
- strcat:连接两个字符串。格式:strcat(字符数组1,字符数组2)
- strcpy:将一个字符串复制到另一个字符数组中。格式:strcpy(字符数组1,字符数组2)
- strcmp:比较两个字符串的大小。格式:strcat(字符串1,字符串2)