Linux C语言程序设计(五)——数组基本概念与解析

来源:互联网 发布:西安美林数据复试 编辑:程序博客网 时间:2024/05/22 14:05

1、数组基本概念

        和结构体类似,数组( Array) 也是一种复合数据类型,它由一系列相同类型的元素( Element) 组成。数组元素的存储空间是相邻的,数组中的元素可以是基本数据类型,也可以是组合数据类型,但是只有一种。

定义和访问一个数组,如下:

#include <stdio.h>int main(void){int count[4] = { 3, 2, }, i;for (i = 0; i < 4; i++){printf("count[%d]=%d\n", i, count[i]);}return 0;}

        这个例子通过循环把数组中的每个元素依次访问一遍,在计算机术语中称为遍历。数组与结构体有许多相似的地方,但是要注意一点:数组不能互相赋值。比如a数组的值不能直接使用“=”赋值给b数组。

        同时数组也不能直接作为一个函数的参数或者返回值,这里要注意,它会自动转换为指针数据类型。指针稍后再说。


2、数组简单应用

生成并打印随机数

#include <stdio.h>#include <stdlib.h>#define N 20int a[N];void gen_random(int upper_bound){int i;for (i = 0; i < N; i++)a[i] = rand() % upper_bound;}void print_random(){int i;for (i = 0; i < N; i++)printf("%d ", a[i]);printf("\n");}int main(void){gen_random(10);print_random();return 0;}

3、字符串

        事实上,字符串也可以看做是一个比较特殊的数组,不过它存储的是字符这样的数据,它当中的基本类型是char字符。不过这个特殊的字符数组,最后是使用'\0'表示字符串结束的。

我们可以定义一个字符数组如下:

char str[] = "Hello, world.\n";

然后使用输出语句打印出来:

printf("string: %s\n", str);

4、多维数组

        就像结构体可以嵌套一样,数组也可以嵌套,一个数组的元素可以是另外一个数组,这样就构成了多维数组。例如定义并初始化一个二维数组:

int a[3][2] = { 1, 2, 3, 4, 5 };

        数组a有3个元素, a[0]、 a[1]、 a[2]。每个元素也是一个数组,例如a[0]是一个数组,它有两个元素a[0][0]、 a[0][1],这两个元素的类型是int,值分别是1、 2,同理,数组a[1]的两个元素是3、 4,数组a[2]的两个元素是5、 0。

#include <stdio.h>void print_day(int day){char days[8][10] = { "", "Monday", "Tuesday","Wednesday", "Thursday","Friday","Saturday", "Sunday" };if (day < 1 || day > 7){printf("Illegal day number!\n");}printf("%s\n", days[day]);}int main(void){print_day(2);return 0;}



0 0
原创粉丝点击