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
- Linux C语言程序设计(五)——数组基本概念与解析
- Linux C语言程序设计(八)——树的基本概念介绍
- Linux C语言程序设计(二)——分支与循环
- Linux C语言程序设计(四)——枚举与结构体
- Linux C语言程序设计(六)——查找与排序
- Linux C语言程序设计(七)——栈与队列
- Linux C语言程序设计(十四)——文件系统与I/O
- Linux C语言程序设计(十五)——进程、线程与信号
- Linux C语言程序设计(十)——makefile
- Linux C语言程序设计(十六)——TCP/IP协议基本解析
- Linux C语言程序设计(十七)——Socket编程的基础解析
- Linux C语言程序设计(十一)——Mac上编写与编译C文件
- Linux C语言程序设计(十三)——Linux上的系统与文件命令
- C语言程序设计<五>
- C语言程序设计谭浩强版 五
- Linux C语言程序设计(三)——函数的理解与自定义
- Linux C语言程序设计(一)——常量、变量和表达式
- Linux C语言程序设计(九)——gdb调试
- WINDBG !stacks
- 拓扑排序(一)
- Unity5.1 新的网络引擎UNET(六) UNET Multiplayer Lobby
- Python实现简单的爬虫
- Android基础入门
- Linux C语言程序设计(五)——数组基本概念与解析
- android坐标
- openCV中waitKey函数介绍
- Palindrome Linked List
- Android 屏幕(View)坐标系统
- HMM-信道模型&前向算法
- Android开发:获取屏幕宽和高的两种方法(px、dip、分辨率之间的关系及px与dip互相转化)
- 23种设计模式之代理模式
- C&C++函数指针