1.数组是一片连续且同类型的储存空间
2定义方式:
类型名 数组名[ 个数 ];
例如:int buf [10];
表示定义一个数组,里面可以储存十个int型的数据,他们的地址连续。
PS:一般来讲,数组名表示首地址
3.初始化,引用
一般来讲,定义和初始化是同时进行的。
引用数据,就是引用数据的内容。引用方法用两种,一个是通过地址引用,另一个是通过下标引用。
数组的是从零开始的。
buf[10]有十个数据,第一是buf[0], 第二个是buf[1],第三个是buf[2]。。。。。。。
3.初始化就是赋值,如果没有赋值,那么就默认为0;
后面没有赋值的部分全部为0;
4.特殊情况
在定义的同时初始化,如果没有给出数组的长度,一般默认是初始化的长度。
比如这个,最后输出16个字节长度,说明编译器默认数组有四个int型的数据。
二.字符数组
字符数组和字符串有区别。
1.定义并且初始化字符数组。
字符数组的引用和数组的引用没有多大区别。
字符数组和一般的数组没有多大区别。
2.字符数组的末尾以‘\0’结尾
3.字符数组的API接口。
全都可以人为实现。
练习:
1、char buf[100]="";
char name[10]="abcd";
将name复制给buf
2、将下列字符串转换成为大写字符:
char buf[100]="aFDsfdsDE3432d";
3、将下列字符串的字符数转换为成整型值
char num[10]="123a"; //123
4、比较两个字符串是否相等
char buf[10]="abc";
char buf1[20]="abc";
相等 buf>buf1 buf<buf1
5、查找子字符串:
"abcdefgabcflifaiafdaelifaalifeiafdasfe"
"lifei"
6、将下列数组中的大写字符排在前列,小写字符排在紧挨大写字符后面;
char buf[]={"AfdSFDsSdfDSSD"};
7、把一个char buf数组的字符串循环右移n个(n==2时,循环移动2个 )
8、统计下列数组中单词的数量:
char buf[]="I love china "; (单词以空格分隔)
上面有许多程序都有相应的函数。
1.strlen(),可以计算字符数组的字符。
2.strcat,连接两个字符串
3.比较两个字符串的大小 strcmp
strcmp(数组1,数组2);
数组1>数组2,返回1
数组1=数组2,返回0
数组1<数组2,换回-1
4.将一个数组粘贴到另一个数组中
下面这个连接有详细的函数和解释