C语言------数组

一.一维数组

数组也是有类型的,去掉数组的名字就是数组的类型;

[  ]叫做下标引用操作符,我们利用他可以轻松访问任何一个元素,数组的下标是从0开始的,如果不注意,会造成越界访问;定义数组是,如果不指定数组的大小,则数组的大小就由大括号内的元素的个数决定,

C语言------数组_第1张图片

%p是打印地址的,通过打印数组中每个元素的地址(以16进制的形式进行打印,而且开头的0不会省略)(%#x可以让打印的结果前面加上0x,x无论大写,小写都可以),我们可以看出数组中的元素是如何排列的;显然,他们之间相差4个字节,那么我们也可以得出,一维数组在内存中是连续存在的

C语言------数组_第2张图片

C语言------数组_第3张图片

二.二维数组

创建时,行可以省略,但是列不能省略

C语言------数组_第4张图片

二维数组也是线性排列的,第一行排列完成后排列下一行;

三.C99引入变长数组

用变量指定数组大小,不是数组的长短是变化的;VS不支持变长数组

C语言------数组_第5张图片

strlen求字符串长度,统计的是\0之前的字符的个数,不包括\0;

但是sizeof在计算数组所占内存的大小的时候,不会关心\0;

四.实战演练-----数组元素移动------二分查找

1.多个字符从两端移动,向中间汇聚

C语言------数组_第6张图片

C语言------数组_第7张图片

C语言------数组_第8张图片

2.数组元素的查找,用二分查找法

正常的方法进行遍历

C语言------数组_第9张图片

C语言------数组_第10张图片

你可能感兴趣的:(C语言,c语言,算法,开发语言)