目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
    • 3.1 第一节  关系表达式和逻辑表达式
    • 3.2 第二节  if单分支语句
    • 3.3 第四节  if双分支语句
    • 3.4 第五节  if多分支语句
    • 3.5 第六节  case多分支语句
    • 3.6 第七节  分支结构程序设计实例
    • 3.7 本章小结
    • 3.8 本章单元测试
    • 3.9 书中本章习题答案
  • 4 第四章  循环结构程序设计
    • 4.1 第一节  为什么需要循环控制
    • 4.2 第一节  while循环
    • 4.3 第二节  do ... while循环
    • 4.4 第三节  for循环
    • 4.5 第四节  多重循环
    • 4.6 第五节  break语句和continue语句
    • 4.7 第六节  循环结构程序设计实例
    • 4.8 本章小结
    • 4.9 书中本章习题答案
  • 5 第五章 数组
    • 5.1 第一节  一维数组的定义和使用
    • 5.2 第二节  二维数组的定义和使用
    • 5.3 第三节  字符数组的定义和使用
    • 5.4 第四节  数组的应用举例
  • 6 第六章  函数
    • 6.1 第一节  函数的定义
    • 6.2 第二节  函数的调用
    • 6.3 第三节 数组作为函数参数
    • 6.4 第四节  变量的作用域
    • 6.5 第五节 变量的存储类别
    • 6.6 第六节 函数应用实例
  • 7 第七章 结构体和共用体
    • 7.1 第一节  概述
    • 7.2 第二节  定义结构体变量的方法
    • 7.3 第三节 结构体变量的引用
    • 7.4 第四节 结构体数组
    • 7.5 第五节 共用体
    • 7.6 第六节  结构体和共用体应用实例
  • 8 第八章 指针
    • 8.1 第一节  指针的概念
    • 8.2 第二节  指向简单变量的指针
    • 8.3 第三节 指向数组的指针变量
    • 8.4 第四节  指向字符串的指针变量
    • 8.5 第五节 指针作为函数参数
    • 8.6 第六节  指向结构体的指针变量
    • 8.7 第七节 指针应用实例
  • 9 第九章  文件
    • 9.1 第一节  文件概述
    • 9.2 第二节  文件的打开和关闭
    • 9.3 第三节 文件的读/写函数
    • 9.4 第四节  文件定位函数
    • 9.5 第五节  文件应用实例
  • 10 附录
    • 10.1 附录A  基本字符ASCII码表(0~127)
    • 10.2 附录B  运算符优先级表
    • 10.3 附录C 常用C库函数表
    • 10.4 附录D  编译常见错误提示
    • 10.5 附录E  常见C语言英语单词
    • 10.6 附录F  如何从十进制转换为二进制
    • 10.7 附录G  如何把二进制数转化为十进制数
    • 10.8 附录H  什么是编译器
    • 10.9 附录I  与编译器相关的几个知识点
第一节  一维数组的定义和使用
  • 1 文字讲解
  • 2 视频讲解
  • 3 拓展资料

§5.1.1   一维数组的定义

一、一维数组的定义方式:     

类型说明符    数组名[ 常量表达式 ];

例如:

int a[10];    /*  数组名为a,有10个int型元素  */

double   scores[50*2];   /* 数组名为scores,有100个double型元素 */

二、定义数组时需要注意以下儿个问题:

① 数组的命名规则和变量名相同。应遵循标识符命名规则。

②“常量表达式”表示数组元素的个数(即数组的长度),在定义数组时必须指定该值。

③ 引用元素时下标从0开始。

例如“inta[10];”,a数组的10个元素分别是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。由于C语言不对下标做越界检查,因此虽然不存在元素a[10],但程序中若使用a[10],编译器并不会提示语法错误,这就需要用户在编程时注意这个细节,否则容易导致意外发生。

④“常量表达式”中可以包括常量和符号常量,但不能包含变量,即语言不允许对数组的大小做动态定义,数组的大小不依赖于程序运行过程中变量的值。

例如,下面定义数组的方式是非法的。

int   n;

scanf("%d", &n );

5 ⑤建义数组时。语言分配足够的内存来存放所有元素,并且这线元素在内存中是连续存

6 int a[n]

7 放的,数组名本身表示内存的首地址

8 (读者在学到指针一章时会对这一点有更深的体会)。例如

9 定文数组“Rat score[10o:”每个元是型,需要古用4个字节,因此需要分配100x4

10 个字节的内存

11 由图-1可以看出,数组的下标实际上相当于某个元素相

12 地址

13 元素

14 对于数组首地址的偏移量例如scorest[3]的偏移量为3个单位

15 scores+0

16 scores(0

17 (即3×4个字节)。了解这一点对数组的理解将会有很大的帮

18 soores+I

19 scores[1]

20 动。

21 scoees+2

22 ]

23 5.1.2一维数组元素的引用

24 s000s+99

25 secres(99]

26 数组定义之后即可使用语言规定只能逐个引用数组元

27 图1数元的地址我小

28 素,而不能一次引用整个数组

29 数组元素的表示形式为:

30 数组名[下标]:

31 这里的“下标”可以是整型常量或整型表达式,例如a[0]、a[2*3]、a[2+3]等。注意下标不要

32 越界。

33 由于数组是多个数据元素的集合,在程序中经常需要对数组的部分或所有元素一起进行处

34 理,因此一维数组经常和循环搭配使用。

35 例5-1输入10个学生的成绩,先计算它们的总分,再输出它们的平均分、

36 #include<stdio.h>

37 main)

38 int i;

39 float scores[10],sum=0;

40 printf("输入10个学生的成绩:");

41 for(i=0;i<10;i++)

42 scanf("%f",&scores[i]);

43 sum+=scores[i ]

44 printf("平均分=%.2f",sum/10);

45 }

46 运行结果如图5-2所示。