浅议C语言中灵魂数组和指针的互操作
听很多朋友说C是一种怀旧的语言,因为它历史悠久。但自从各种面向对象编程语言相继出现后,其影响力不断下降。
当然这无可厚非,但是C的效率是其他语言无法比拟的,所以我们有必要掌握它的本质和奥秘,也有必要了解数组、略深的栈、列表、结构等基本数据结构的操作和实现。指针在C语言中也是一个优秀灵活的结构,理解它是很有必要的。
我们一般认为数组是一维的数据存储结构,因为两位数组或矩阵可以看作是多个一维数组的组合结构,在其上定义的数据存储和存取方式是相同的。所以一维数组是最基础也是最重要的部分,只有理解了这类数据结构的本质,才能得到类比。
数组是几个同类变量的聚合,允许用统一的名字喝里面的变量。所以数组是同一类型的有限数据集合。您可以通过下表访问数组中的一些数组元素。
在C语言中,数组都是由连续的内存区域组成的(有时,情况不一定如此)。最低地址对应第一个元素,数组下标从0开始,所以第一个元素是下标为0的元素,它的地址对应最后一个元素,即第n-1个元素(如果我们定义的数组是n元)。
如何定义数组:
在C语言中,允许在声明数组的同时初始化数组,也可以把声明和定义放在不同的位置。初始化通常类似于以下表达式:
type _ specifier array _ name[size 1]...[sizeN]= { value _ list };
其中,vlaue_list是由逗号(,)分隔的常量列表,常量列表必须与type_specifier兼容。由下一条语句的最后一个分号分隔。可以看出,一维数组的定义如下:
类型说明符
array _ name[size]= { value _ list };
如下所示:
char hello[12] = {'H ',' e ',' l ',' l ',' o ','
,' ',' w ',' o ',' r ',' l ',' d ',' \ 0 ' };
注意:字符数组以“' [16] '”结尾,这是C标准的一部分。因为操作字符数组时用' [16] '作为结束判断的标志。当然,如果定义一个字符串,就不需要加这个' [16] '。因为有一个机制可以帮你自动添加。
0条评论