数组是一组同类型元素的集合
类型符 数组名[常量表达式]
<1>一般方法
<2>宏定义
**数组创建时,[]内必须是一个常量。
数组的初始化是指在创建数组的同时,给数组一些对应的初始化值。
<1>整型 int len=sizeof(arr)/sizeof(arr[0]);
<2>字符串 int len=strlen(arr);
注意 **1.数组是具有相同类型的集合,数组的大小(即所占字节数)由元素个数乘以单个元素的大小。
2.数组只能够整体初始化,不能被整体赋值。只能使用循环从第一个逐个遍历赋值。
3.初始化时,数组的维度或元素个数可忽略,编译器会根据花括号中元素个数初始化数组元素的个数。
4.当花括号中用于初始化值的个数不足数组元素大小时,数组剩下的元素依次用0初始化。
5.字符型数组在计算机内部用的时对应的ascii码值进行存储的。
6.一般用”“引起的字符串,不用数组保存时,一般都被直接编译到字符常量区,并且不可被修改。
1.二维数组的创建
2.二维数组的初始化
注意:
花括号中的一个花括号代表一个一维数组的初始化。当里面无花括号分组时,按照顺序从第一个开始逐个进行初始化。余下的未赋值的元素用0初始化。
3.计算长度
<1> int len =sizeof(arr[0][0]); //计算数组首元素大小
<2> int len =sizeof(arr)/sizeof(arr[0][0]); //计算数组元素个数
字符数组的定义:用来存放字符量的数组称为字符数组。
其定义的一般形式是:char 数组名[数据长度];字符数组用于存放字符或字符串,字符数组中的 一个元素存放一个字符,它在内存中占用两个字节。
字符串:是由”“包括起来的字符序列。字符串的结束标志是‘\O’,由数字、字母、下划线组成的一串字符。用双引号括起来的一串字符就是字符串常量,它的末尾将由系统自动添加一个字
符串结束标志‘\0’。
在c语言中不能定义字符串,但是在c语言中使用字符串,通常会用字符数组来模拟字符串,必须是’\0'结尾的字符数组。如果字符数组没有‘\0'结尾,那该字符数组就是普通的字符数组,不是字符串。
2.分类说明
<1> char arr[5]={'h','e','l','l','o'}; //是字符数组,不是字符串,因为数组容量为5,没有‘\0’的位置,没有一‘\0’结尾。
<2> char arr[5]={'h','i'}; //是字符数组也是字符串,容量为5的数组只有两个元素,自动一’\0‘结尾
<3> cahr arr[5]="hello"; //是字符串也是字符数组,由“”括起来的自动以'\0'结尾
3.总结
<1>. 判断字符数组是否为字符串,就得看他末尾有没有'\0'。
<2>. 注意判断是否有隐含的\O'。
<3>. 字符串在C语言中输出字符串时会逐个扫描字符,直到遇见\0'才结束输出。
格式: strlen(数组名);
功能:统计字符串的长度,以’\0‘为结束标志,统计长度不包括’\0‘。
代码实现:
格式:strcpy(brr,arr); //将arr的内容拷贝给brr
功能: //将arr的内容拷贝给brr
代码实现:
格式:strcat(arr,brr);
功能:将brr的内容连接到arr后面
代码实现:
格式:strcmp(arr,brr);
功能:比较两个字符串的大小
代码实现:
1.输入函数
<1>. scanf
scanf("格式",地址);
<2>. getchar
getchar(字符串数组);
<3>.gets
get(字符串数组);
<4>.sscanf
作用:从一个字符串中读取指定格式的数据,以已有的字符串作为输入源。
sscanf("hello,world","%5s",arr); //输出:hello
2.输入函数
<1>.printf
printf("格式",输出对象);
<2>. putchar
putchar(字符串数组);
<3>.puts
puts(字符串数组);
<4>.sprintf
作用:将指定内容打印到字符串中.
格式:sprintf(arr,"%s's age is %d","zhangsan",18); //输出:zhangsan 的年龄为18