写在前面,博主会在明年入职合肥某ic企业,主要工作IC验证,最近在将c语言的部分补起来,有合肥的伙伴可以交流哦,下面开始这一次的讲解。这次主要和大家分享下c语言中的数组内容。
首先讲解一维数组。
从左到右分别是元素的类型,数组的名字,方块里面是常量表达式。
举个例子:int arr [8]指的是数组名称是arr,里面放8个元素,每个元素的类型是整型int
char arr[5]:数组名称ch,里面放5个元素,每个元素类型是char。
我们要注意,int arr [n]的写法是错的,因为[]里面应该放常量表达式
接下来简单说下数组的初始化,他指的是创建数组的哦同时给数组的内容贾一些合理的初始值
我们要注意这两个代码是等价的。
首先要直到这是字符数组,其次字符数组最后面会有个\0的存在,用来告诉大家字符到这里就结束了。
当我们在打印的时候,一定要按照ch5的形式来打印,因为对于ch5来说,他知识在内存空间里面找到了一块空间,并且可以找到\0,因此到\0之后就停止打印,二ch6的话,因为没有\0,所以回一直往下面打印,就会打印出随机值。
最后,我们要知道,数组是使用下角标来打印的,下角标从0开始,并且数组的大小是可以通过计算得到的,并且,一维数组在内存里面是连续存放的,随着数组下脚本标的增加,地址是由低到搞变化的。我们可以看到,每个整型元素都是4个字节,只要我没问你找到第一个数的地址,就可以找到其他的地址。
接下来讲一讲二维数组。
当int arr[3][4]时,他的意思是创建一个三行四列的二维数组,调试的时候形式如下。并且我们要知道,由几行是可以省略的,但是由几列是不可以省略的,因为行内部是连续的,跨行也是连续的,四之所以不能省略,是因为一行有四个元素之后,我才知道第二行放在哪里去,二维数组在内存中也是来女婿存放的
接下来,我们要知道,数组名是什么,它指的是数组首元素的地址。在打印的时候,打印arr和下打印&arr[]的结果是一样的。
但是由两个例外,1.sizeof(数组名)此时数组名指的是钟个数组,计算的是整个数组大小的单位
2.&数组名表示整个数组,取出来的是整个数组的地址。