C语言基础4

数组

数据类型 数组名称[长度];
获取数组元素:数组名称[元素所对应下标];

数组的下标均以0开始; 数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;
初始化数组时元素个数小于数组的长度时,多余的数组元素初始化为0;
在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。

数组的遍历

数组就可以采用循环的方式将每个元素遍历出。

避免出现数组越界访问,循环变量最好不要超出数组的长度。

C语言的数组长度一经声明,长度就是固定,无法改变,C语言并不提供计算数组长度的方法。
由于C语言是没有检查数组长度改变或者数组越界的这个机制,可能会在编辑器中编译并通过,但是结果未知。

c语言获取数组长度: int length = sizeof(arr)/sizeof(arr[0]);

数组作为函数参数

数组可以由整个数组当作函数的参数,也可以由数组中的某个元素当作函数的参数:

整个数组当作函数参数,即把数组名称传入函数中。
数组中的元素当作函数参数,即把数组中的参数传入函数中。

字符串与数组

C语言中,是没有办法直接定义字符串数据类型的,但是我们可以使用数组来定义我们所要的字符串。
一般有以下两种格式:
char 字符串名称[长度] = “字符串值”;
char 字符串名称[长度] = {‘字符1’,‘字符2’,…,‘字符n’,’\0’};
[]中的长度是可以省略不写的;

采用第2种方式的时候最后一个元素必须是’\0’,’\0’表示字符串的结束标志; 采用第2种方式的时候在数组中不能写中文。

在输出字符串的时候要使用:printf(“%s”,字符数组名字);或者puts(字符数组名字);。

字符串函数

常用的字符串函数

在这里插入图片描述

strlen()获取字符串的长度,在字符串长度中是不包括‘\0’,而且汉字和字母的长度是不一样的。

GBK编码,一个汉字占两个字节。
UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。

UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。

strcmp()在比较的时候会把字符串先转换成ASCII码再进行比较,返回的结果为0表示s1和s2的ASCII码相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ASCII码小。

strcpy()拷贝之后会覆盖原来字符串且不能对字符串常量进行拷贝。

strcat在使用时s1与s2指的内存空间不能重叠,且s1要有足够的空间来容纳要复制的字符串。

atoi(s)函数用于把一个字符串转换成一个整型数据,该函数定义在stdlib.h中。

多维数组

数据类型 数组名称[常量表达式1][常量表达式2]…[常量表达式n];
二维数组定义的时候,可以不指定行的数量,但是必须指定列的数量。

多维数组的遍历

多维数组也是存在遍历的,和一维数组遍历一样,也是需要用到循环。多维数组需要采用嵌套循环。多维数组的每一维下标均不能越界。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值