苏嵌学习linux C的第二天:数组Array(个人小结)

1 数组

数组是一组数据的集合,它包含的每个数据叫做数组元素,包含的数据个数称为数组长度。我们可以用数组的格式来表达下他的含义,数组格式:类型 + 数组名 + [常量表达式]。这里的常量表达式可以是常量及常量表达式在linux环境下不能为变量且长度最小为1

数组中我们需要注意的是:数组中的每个元素的数据类型必须相同;数组的长度是固定的,注意数组下标越界问题(这里说到下标,提一下下标序号从0开始,而不是从我们熟悉的1开始)。

数组在赋初值的时候,有两点需要提醒:(1)只能在初始定义时才能赋初值;(2)中途赋初值只能对元素进行输入输出,不能对整个数组进行操作

给数组赋初值分为全部赋初值和部分赋初值。当我们给一个数组全部元素赋初值的时候,这个数组的长度可以不用写明。例如:int a[4] = {1,2,3,4} 同int a[] = {1,2,3,4}。第二种情况是我们给一个数组部分元素赋初值时,我们从前往后依次给数组中的元素赋初值,剩下的元素是未赋初值部分,我们给他们赋初值{0}。(未赋初值部分需要根据类型来赋值,如:short、long类型要赋值’0’;char类型要赋值’\0’;float、double类型要赋值’0.0’)此外,我们可以通过例如int a[10] = {0}的形式,给整个数组的元素全部赋初值{0}。

数组的使用如逆序和冒泡排序,我会在下面的几篇博客中写出具体程序出来,供大家参考,这里就不具体说明了。

2 二维数组

二维数组的格式是:数据类型 + 数组名 + [常量表达式1] [常量表达式2]。我们可以结合一维数组简单点理解,可以看作是由一维数组嵌套而成的。二维数组是一个一维数组,在一维数组中的每个元素是一个一维数组。

二维数组在概念上是二维的,但在内存中地址是连续的,也就是说各个元素是相互挨着的。我们可以通过画表格来形象描述它。

二维数组的一些要求,特点与一维数组大同小异

在一维数组中,我在赋初值的环节给出的两点提醒同样对二维数组有效。我们只需要在全部赋值和部分赋值上做点改变。我们对二维数组全部元素赋初值时,第一维的{}可以省去,不会影响数组的意思(比如:int a[3][2]={{1,2},{2,3},{4,5}}同等于int a[3][2]={1,2,2,3,4,5})。并且第一维的长度也可以不给出,比如inta[][2]={1,2,2,3,4,5}。

当我们只对部分元素赋初值时,未赋初值的元素自动取’0’值,如int a [3][3]={{0,1},{0,0,2},{3}},赋值后的元素值为:

0  1  0

0  0  2

3  0  0

3 字符数组和字符串

字符数组是多个字符的集合,就是说一个字符数组存放一串字符串。因此,我们可以直接将字符串赋值给字符数组

字符数组的一般格式为 char + 数组名 + [常量表达式]。一般我们可以这么写更简洁:char str[]=”hello!”。

在字符数组中,我们要注意几点:

(1)             在C语言中,字符串总是以’\0’作为串的结束符。我们要记住,只有遇到’\0’才能结束。上面的字符串,已经自动在末尾添加了’\0’。

(2)             字符串给字符数组赋值时,由于要添加结束符‘\0’,数组的长度要比字符串的长度(字符串长度不包括‘\0’)大1。上面的字符串长度为6,而字符数组的长度为7。

接下来,我需要具体讲下str相关字符串函数

除了printf、puts、scanf、gets等,头文件是stdio.h,当我们使用str相关字符串函数时,头文件要加上string.h

(1)strlen函数

strlen表示字符串长度,用来计算字符串的长度,同样直到遇到字符串结束标志‘\0’才能结束。

(2)strcat函数

strcat语法格式为 strcat(字符串1,字符串2),表示将字符串1和字符串2合二为一放到字符串1的数组中。注意:数组1的长度要同时足够容纳字符串1和2,否则会出现越界问题

(3)strcpy函数

strcpy语法格式为 strcpy(字符串1,字符串2),表示将字符串2的元素复制到字符串1中。同样需要注意,数组1的长度要同时足够容纳字符串1和2,否则会出现越界问题

(4)strcmp函数

stycmp语法格式是strcmp(字符串1,字符串2),表示字符串1和字符串2进行比较,输出结果。若字符串1和字符串2相同,则返回0;若字符串1大于字符串2,则返回1;若字符串1小于字符串2,则返回-1。

暂时我们可以先了解上面4个str相关字符串函数,感兴趣的可以去上网查找更多的相关字符串函数。

4 字符串的输入与输出

我在上一篇博客中有介绍过printf函数,同样字符串的输出我们也可以用printf函数进行输出。一般格式为:printf(”%s\n”,str)。此外,在字符串的输出方式中,我们也可以用puts函数直接输出字符串。这里要注意puts函数只能输出字符串。一般格式为:puts(str)。

同样,我们在字符串的输入中也有两个函数,除了之前提过的scanf函数外,还有gets函数。其中gets函数直接输入字符串,并且只能输入字符串

注意:scanf函数会被空格截断。对比于gets函数不会,他只会被回车截断。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值