C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
声明一个数组
格式:
type arrayName [ arraySize ];
两种方式声明
1. 只是声明一个数组
double balance[5];必须制定数组的可存储的元素个数
2. 声明的同时初始化
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
这种方式可以不需要执行数组的元素个数
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
数组的内存分配,从0元素开始各元素的地址一次递增。

数组指针
在下面的声明中
double balance[50];
balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。
因此,下面的程序片段把 p 赋值为 balance 的第一个元素的地址:
double *p;
double balance[10];
p = balance;
使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式
一旦您把第一个元素的地址存储在 p 中,您就可以使用 p、(p+1)、*(p+2) 等来访问数组元素。下面的实例演示了上面讨论到的这些概念:
使用指针的数组值
*(p + 0) : 1000.000000
*(p + 1) : 2.000000
*(p + 2) : 3.400000
*(p + 3) : 17.000000
*(p + 4) : 50.000000
使用 balance 作为地址的数组值
*(balance + 0) : 1000.000000
*(balance + 1) : 2.000000
*(balance + 2) : 3.400000
*(balance + 3) : 17.000000
*(balance + 4) : 50.000000
C字符串
在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。
下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
依据数组初始化规则,您可以把上面的语句写成以下语句:
char greeting[] = "Hello";
字符串简写方式
char *name = "coderhong";
本质就是一个char 类型的指针指向了一个{'c', 'o', 'd', 'e', 'r', 'h', 'o', 'n', 'g', '\n'};
字符数组。
网友评论