C语言数组教程.pptx

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 数组主讲教师:孙运雷计算机与通信工程学院 计算机科学系sunyunlei@顾基本数据类型:int, float/double, char数据的处理:根据问题需求,先作几个简单变量的定义,然后对这些变量赋值并作相应的运算即得结果 例如:输入10个实数,求其平均值。#include stdio.hint main(){int i; float num, sum=0; printf(input 10 numbers: \n); for (i=1; i=10; i++) { scanf(%f,num); sum +=num; } printf(average =%.2f \n, sum/10.); return 0;}各变量独立存储,之间没有任何关系不需要也不可能保留变量的历史值问题的提出一个人n门课的成绩怎样存储和处理?一个班n门课的成绩怎样存储和处理?如何从键盘输入100个数然后按相反顺序输出?输入10个数,将高于平均值的数输出?......这些数据的特点:1.具有相同的数据类型2.使用过程中需要保留原始数据 为了方便的使用这些数据,C语言提供了一种构造数据类型:数组。一定要理解并用好数组!本章主要内容C 语言中的数组数组是具有相同类型的数据的顺序集合数组可以在内存中连续存储多个元素Rate945.3987Rate[0] Rate[1] Rate[2] Rate[3]0123下标数组元素下标标明了元素在数组中的位置 ,从0开始数组类型本章主要内容定义一维数组数组和变量一样,必须先定义后使用;数组大小定义好后,将不能改变;datatype arrayName[size];数组名类型说明符int、char、float …常量表达式:数组大小#define LIMIT 20. . . int emp_codes[LIMIT];int num[50];char list_of_initials[20];double pressure_level[6];数组大小最好用宏来定义,以适应未来可能的变化定义一维数组C89:定义数组时不能使用变量定义数组的大小,即使在此之前变量已经赋值,只能使用整形常量定义数组的大小C99:允许用变量定义数组的大小int array(10);int n=5; float score[n];int n;scanf(%d, n);int data[n];char str[ ];float char[10];内存数组元素序号1score[0]2score[1]3score[2]4score[3]5score[4]score数组一维数组在内存的存放int score[5];score数组下标从0开始数组元素在内存中按顺序连续存放数组名代表数组的首地址,即score的值与score[0]的地址值相同低地址高地址score[0]2000Hscore[1]2004Hscore[2]2008Hscore[3]200CH数组元素的引用——数组元素就是变量数组名[下标表达式];例如: int a[5]; a[0]=20; a[4]=2*a[0];说明:下标表达式的值必须为整型下标从0开始,最大下标为数组长度减1[ ]是下标运算符,引用数组元素时根据数组首地址和下标计算出该元素的实际地址,然后取出该地址的内容如引用score[2]:计算2000+2*4=2008取出地址2008的内语言中,不允许引用数组进行运算,只能引用数组元素基本形式:b[0]40b[1]44b[2]48b[3]4cb[4]50 c54 a58 i5cb[8]6064686c下标越界是大忌!int a[10]; scanf(%d,a[10]); /*下标越界*/编译程序不检查是否越界下标越界,将访问数组以外的空间,可能带来严重后果0#include stdio.hint main(){ int a = 1, c = 2, b[5] = {0}, i; printf(%p, %p, %p\n, b, c, a); for (i=0; i=8; i++) { b[i] = i; printf(%d , b[i]); } printf(\nc=%d, a=%d, i=%d\n, c, a, i); return 0;} 12345运行程序或单步执行观察变量变化情况可以看到,变量c和a的值因数组越界而被悄悄破坏了6798一维数组的初始化初始化:在定义数组时给数组元素赋初值形式:数据类型 数组名称[数组长度]={数值列表}在定义数组时,对全部数组元素赋初值:例如:int a[5]={0,1,2,3,4};此时也可省略数组长度例如:int a[ ]={0,1,2,3,4};

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档