C语言数组

六、数组

1.一维数组和二维数组的定义、引用及初始化

(1).一维数组

定义:当数组中的每个元素只带有一个下标时,称为一维数组

形式:类型标识符 数组名 [整型常量表达式]; >>>>>int a[5];

(注意:1.类型标识符用来定义数组元素的类型,可以是任何基本数据类型,也可以是指针或构造类型)

2.数组名是用户定义的数组标识符,必须遵循标识符的命名规则,并且在一个函数内,数组名不能与变量名相同

3.整型常量表达式说明数组元素的个数(数组长度),只能包含整型常量或字符,不能包含变量或函数)

引用:先定义,后引用

引用形式:数组名[下标] 下标是数组元素在整个数组中的顺序号,从0开始

(注意:1.一个数组元素实质就是一个变量名,代表内存中的一个存储单元

2.一个数组不能整体引用,不能用数组名来代表全部元素的输出

3.数组下标从0开始,运行时,系统不会检查数组元素下标是否越界)

数组初始化:在数组定义的同时,可以对数组各个元素指定初值,这个过程称为数组初始化

1.对数组所有元素赋初值:int a[5] = {1,2,3,4,5};

2.对数组部分元素赋初值:int a[8] = {1,2,3,4,5}; 后面元素自动赋0值

3.通过赋初值来确定数组的大小:int a[5] = {1,2,3,4,5}; 可写为int a[] = {1,2,3,4,5};

(2).二维数组

定义:数组中每个元素带有两个下标,则这样的数组称为二维数组

形式:类型标识符 数组名 [常量表达式1] [常量表达式2]; >>>>>int a[2] [3]; >>>>>二行三列的二维数组

引用:二维数组的元素又称为双下标变量

引用形式:数组名 [下标1] [下标2]

(注意:1.数组定义与数组元素的引用在形式中有些相似,但这两者具有完全不同的含义,数组定义的方括号中给出的是某一维的长度,数组元素引用时给出的 下

标是该元素在数组中的位置标识,前者只能是常量,后者可以是常量、变量或表达式

2.不要越界使用)

二维数组的初始化:初始化方法和一维数组初始化方法基本相同

1.分行给二维数组赋初值:int a[2] [3] = {{1,2,3},{2,3,4}};

2.可以将所有数据写在一个花括号内,按照数组排列顺序对元素赋初值:int a[2] [3] = {1,2,3,4,5,6};

3.可以对部分元素赋初值,其余元素自动赋0值:int a[2] [3] = {{1},{2}};

(3).多维数组(做了解)

2.字符数组的定义、引用及初始化,字符串和字符串结束标志,字符数组的输入输出,字符串函数的应用

(1).字符数组

定义:存放字符型数据的数组,其中每个数组元素存放的都是单个字符。字符数组中元素都可以作为一个字符型变量来使用

定义方法:char a [10]; char a [2] [3];

初始化:在定义时作初始化赋值

char a [2] = {'a', 'd'};

如果括号里提供的初值个数大于数组长度,则编译出错;若小于数组长度,则后面的元素默认为空字符(‘\0')

字符数组元素的引用:同其他类型数组一样,也可以引用字符数组中的每个元素

(2).字符串和字符串结束标志

在C语言中,是将字符串作为字符数组来处理的。字符串中的字符是逐个存放到数组元素中的。

C语言在用字符数组存储字符串常量时会自动加一个“\0”作为结束标志

(3).字符数组的输入输出

在C语言提供的字符串输入输出中,有的还可以输入输出单个字符,在使用这些函数前应包含头文件stdio.h

1.scanf和printf函数:scanf和printf函数用于输入、输出单个字符和字符串

scanf("%s",str);

printf("%s\n",str);

2.gets函数:使用gets函数可以完整读入带有空格的字符串

gets(str);

str是存放字符串的起始地址,可以是字符数组名、字符指针或字符数组元素的地址

3.puts函数:用来输出一个字符串

puts(str);

str是存放字符串的起始地址

(4).字符串函数的应用

1.字符串连接函数streat

strcat(字符数组名1,字符串2) >>>>>把字符串2连接到字符数组1中字符串后面,并删去字符串1的串标志'\0',结果字符串长度是两个字符串长度之和。字符串

2可以是字符数组,也可以是字符串常量,函数返回值是字符数组1的首地址

(使用strcat函数时,字符数组1应定义足够的长度,否则可能会发生问题)

2.字符串复制函数strcpy

strcpy(字符数组名1,字符串2) >>>>>把字符串2连同串结束标志'\0'复制到字符数组1中,字符串2可以是字符数组,或字符串常量,当字符串2是字符串常量

时,相当于把一个字符串赋予一个字符数组

(strcpy函数要求字符数组1的长度不小于字符串2的长度,否则可能会发生问题)

3.字符串比较函数strcmp

strcmp(字符串1,字符串2) >>>>>比较两个字符串的大小,字符串1和字符串2可以是字符数组名或字符串常量

函数返回值是一个整数,即:

若字符串1=字符串2,函数返回值为0

若字符串1>字符串2,函数返回值是一个正整数

若字符串1<字符串2,函数返回值是一个负整数

(C语言不允许使用关系运算符比较两个字符串大小)

4.测字符串长度函数strlen

strlen(字符串) >>>>>计算字符串的实际长度(不含字符串结束标志'\0'),并作为函数返回值

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值