06c数组与字符串.pptVIP

  • 1
  • 0
  • 约8.76千字
  • 约 36页
  • 2016-12-21 发布于贵州
  • 举报
C语言程序设计---第6章 作业: 6.1~ 6.8 做在作业本上; 以下编程题形成电子文档: 6.10, 6.13, 6.14, 6.16 * 第6章 数组与字符串 前面所用到的数据称之为基本类型(整型、实型、字符型)。它们处理数据的能力非常有限。C语言提供了一种构造类型,它具有强有力的数据组织和数据表达能力。其中,数组是C语言组织和描述较复杂数据对象的基本工具之一,是一种应用极广的构造数据类型。 6.1 概述 数组:由一组有序数据(数组元素)组成。 例如,一组数据:a0,a1,a2,…,a99用数组表示: a[0],a[1], a[2],…,a[99] 下标,它决定了元素在数组中的位置 数组特点: 1.一个数组由一个名字来标识; 2.数组大小必须确定,不许随机变动; 3.同一数组中的元素其类型相同,不许混合类型 6.2 一维数组 如果数组元素在数组中的位置只需要用一个下标就能确定,这样的数组称为一维数组。 同变量一样,数组也必须先定义,后使用。 6.2.1 一维数组的定义 数组定义格式: 类型说明符 标识符[整型常量表达式]; 数组元素类型 数组名 元素个数。它只能是常量或由常量构成的表达式,不能含有变量 例: int a [20]; float grades [100]; 归纳几点: 1)C在语法上没有数组变量的概念,对数组的操作只能分解为对其元素的操作,数组作为一个整体不能参加运算。 2)定义中的整型常量表达式的值决定了该数组的元素个数,而不是该数组可用的最大下标。它可以是已定义的符号常量。 3)下标从0开始。下标可以是整型常量、字符、枚举型常量及其表达式。 4)数组名不是一个变量而是一个地址常量,它代表该数组所占存储空间的首地址,即该数组第一个元素所占空间的首址。 5)数组的存储结构:同一数组中的元素总是被分配在一片连续的空间,并根据数组的元素类型,为每一元素安排相同长度的存储单元。 6)数组元素的表示方法。有两种: 下标表示: 应是可求值的 例如:a = grades[i+j]; 指针表示:也是一种常用的表示数组元素的方法 数组名[下标表达式] i和j已有确定的值 6.2.2 数组名与指针 我们考虑下面的例子: int a[100]; int *p; 则下面两个赋值表达式不但是合法的,而且它们的结果也是一样的: p = a[0] p = a (3)两者所能施加的运算也不尽相同。例如: a++ /* 非法 */ p++ /* 合法 */ (1)数组名a是一个常量,它表征的实体是一种数据结构;指针p是一个变量。 (2)数组名a的值不可改变,即数组名不是左值;指针p的值可以更新,即指针是左值。 6.2.3 一维数组的初始化 初始化规则: 依序枚举赋值; 剩余的元素被自动初始化为0。 int a[5] = {1,3,5,7,9}; float x[100] = { 0.0 }; 有些编译器允许用逗号表示相应数组元素的初值为0,就像下面的例子那样: int a[5] = {,2,,8}; 考虑下面这几个定义语句: char aStr1[ ] = Hello; char aStr2[ ] = { ’H’, ’e’, ’l’, ’l’, ’o’, 0 }; char aStr3[ ] = { ’H’, ’e’, ’l’, ’l’, ’o’ }; char *psz = Hello; 6.2.4 引用数组元素 C语言对数组下标没有提供安全措施,程序员要承当起确保下标不越界的全部责任和因为下标越界所产生的一切后果。 int a[5] = {1,2,3,4,5}; for( k = 0; k 6; k++ ) { a[k] += a[k]; printf(a[%d] == %d\n,k,a[k]); } 输出结果为: a[0] == 2 a[1] == 4

文档评论(0)

1亿VIP精品文档

相关文档