数组:
一组具有相同数据类型的集合
int a[10];
1.一维数组
2.二维数组
3.字符数组
1.一维数组
1.1定义格式:
数据类型 数组名[数组元素个数];
"数据类型":任何合法的C语言数据类型即可
"数组名" :合法C语言标识符即可
"数组元素个数":不能为变量,只能是常量、常量表达式 例如:int a[10]; char a[10];
1.2存放格式
数组名a中存放的是数组首地址
1.3数组的引用
数组名 [下标]
"下标":从0开始
引用数组和引用普通变量一样,也有左值和右值
a[6]=10;
int b=a[6];
1.4数组的初始化
1.全部初始化
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a[10];//error
a[10]={1,2,3,4,5,6,7,8,9,10};
2.部分初始化(未初始化的数组元素全部为0)
int a[10]={1,2,3};
对数组全部元素赋值0
int a[10]={0};
3.省略数组元素个数
int a[]={1,2,3,4,5,6,7};
a[7]=10;//error
ex1.对数组元素用scanf给数组赋值,并且逆序输出数组。
ex2.对数组元素用scanf给数组赋值,求数组的最大值。
ex3.对数组元素用scanf给数组赋值,求数组的最小值。
ex4.判断一个数组是否为递增的?(a[i]<a[i+1])
ex5.判断一个数组是否有序?
flag1=1;//a[i+1]>a[i]
flag2=1;//a[i+1]<a[i]
if(flag1==0&&flag2==0)
{
printf("无序");
//1.return 0 ;
//2.goto loop
}
loop:
ex6.在有序的数组中查找元素x,输出数组元素的下标
2.二维数组
1.引入
int a[4]; int[4] a;===>typeof(a) b[3]
=====>int a[3][4];表示3行4列
2. 定义方法
数据元素类型 数组名[行数][列数];
int a[3][4];
3.二维数组的存放
(见图)
4.二维数组初始化
1.全部初始化
int a[3][4]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12}};
2.部分初始化
a.int a[3][4]={{1,2,3,4},{5,6,7}};//未初始化的全部是0
b.int a[3][4]={1,2,3,4,5,6,7,8,9};
3.省略第一维的长度,第二维不可省
int a[][4]={1,2,3,4,5};
ex.用scanf输入赋值,行列互换,打印输出
ex.求二维数组的"鞍点",在行中最大,列中最小。
3.字符数组
在c语言中没有数据类型是用来表示字符串的
字符串 :"123" 以\0结束
1.定义字符数组
char c[10];
2.字符数组的初始化
1.全部初始化
char a[10]={'I',' ','a','m',' ','h','a','p','p','y'};
char a[11]={"I am happy"};//与前一个相比,在末尾多了一个'\0'
char a[11]={'I',' ','a','m',' ','h','a','p','p','y','\0'};//与前一个相同
2.部分初始化
char a[10]={'I'};//未初始化的全部为'\0'
对一个字符输出全部初始化成'\0'
char a[10]={0('\0')};
3.省略数组长度初始化
char a[]={'I',' ','a','m',' ','h','a','p','p','y'};
char a[]="I am happy"
3.字符数组在内存中的存放
4.字符数组输入输出
1.将字符串用%c逐个输出
for(i=0;i<sizeof(a);i++)
{
printf("%d ",a[i]);
}
输入:
for(i=0;i<sizeof(a);i++)
{
scanf("%c",&a[i]);
}
2.%s用来输出字符串,输出到遇见'\0'为止
printf("%s",a);//a字符数组的首地址
scanf("%s",a);//注意传入字符数组名即可
5.字符串相关函数
int puts(const char *s);
功能:输出一个字符串到屏幕上
const char *s:字符数组的首地址(即数组名)
字符串常量(例如:"1234")
返回值:输出成功,返回输出的字节数
失败返回EOF -1
char *gets(char *s);//会把输入\0的当成字符
功能:从屏幕上得到一个字符串存储到s的地址空间中去
char *s:字符数组的首地址
返回值:返回输入字符的首地址
ex。用gets得到字符串 "123\04"
1.求字符串的有效字符长度(使用'\0')
2.用puts输出字符串
size_t strlen(const char *s);
功能:计算字符串s的有效字符长度(遇到\0就不加了)
const char *s:字符数组的首地址(比如说a)
字符串常量
返回值:返回得到字符串的长度
C语言基础四:数组
最新推荐文章于 2022-12-27 10:33:20 发布