【考研C语言】一维数组和字符串数组的小知识点

49 阅读2分钟

一维数组

声明数组

注意数组定义的时候a[x],x为了保险一定要写常量,不要写一个变量

数组元素赋值

可以给一部分元素赋值

如果要使一个数组中全部元素都是0,可以这么写

数组传参

只能循环一个一个打印出来

注意传递数组的时候是无法把整个数组传递过去的,本质其实就是把数组首地址传过去

所以函数里面的数组参数一直都是fun( a[] ),方括号里面不写长度是因为写了也没用。

所以如果你要用到数组的长度,那么你只能在函数参数里面单独开一个参数来存放数组的长度。

字符数组

初始化

以下两种方法可以,但是基本不用

但工作中一般不用以上两种初始化方式,因为字符数组一般用来存取字符串。通常采用的初始化方式是 char c[10]="hello"。

因为C语言规定字符串的结束标志为'\0',而系统会对字符串常量自动加一个'\0',为了保证处理方法一致,一般会人为地在字符数组中添加 '\0',所以字符数组存储的字符串长度必须比字符数组少1字节。例如,char c[10]最长存储9 个字符,剩余的1个字符用来存储\0。【只有你是一个一个给char数组的所有元素手动赋值的时候才需要手动加上\0,意思说如果是你是char[6] = {x,x,x,x,x}(大括号里里面是五个元素<数组长度6)是不需要的,如果 char c[10]="hello"也是不需要的,但是如果你是char[5] = {x,x,x,x,x}(大括号里里面是五个元素=数组长度5)那么就会出问题】

插播:%s用来打印字符串

初始化字符数组时,一定要让字符数组的大小比看到的字符串的长度多1

读取字符串

读取单个字符串

读取多个,scanf会自动忽略字符串中间的空格。如果要把字符串也读进去,那么用scanf不是很方便