软件技术ppt第2章 C语言回顾.pptx
《软件技术ppt第2章 C语言回顾.pptx》由会员分享,可在线阅读,更多相关《软件技术ppt第2章 C语言回顾.pptx(49页珍藏版)》请在文库网上搜索。
1、C语言是通用计算机编程语言,兼有高级和低级语言的功能,语法简洁,应用广泛。有良好的跨平台特性。适合编写系统软件和应用软件。为了更好地理解书中案例,本章对C语言中相对复杂的数组、结构、指针类型变量的应用予以回顾。前言目录运行环境01数组与结构02指针03递归04运行环境PARTONE2.1运行环境Dev-C+是Windows平台下的开源C+编程环境。它集成了GCC、MinGW32等众多自由软件,界面类似VisualStudio,但体积要小的多。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示,以减少编辑错误,还有完善的调试
2、功能,能够适合初学者与编程高手的不同需求,是学习C或C+的首选开发工具。C语言程序设计一般步骤为:(1)分析问题,设计解决方案;(2)编写C语言程序代码;(3)上机调试(编辑、编译、链接、执行)。通常,一个提供给程序员使用的专业函数库由以下部分组成:u头文件(*.h):函数原型、宏常量定义等。u库文件(*.lib):函数的二进制代码。u动态链接库(*.dll):专业函数库,程序运行时调用。数组与结构PARTTWO2.2.1数组在语言中,数组与结构均属于构造数据类型,即每个数组或结构可以包含多个数组或结构元素,这些元素可以是基本数据类型也可以是构造类型。数组与结构的定义与使用相对于简单数据类型复
3、杂。2.2.1数组1数组的定义把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。inta5,定义了一个整数型数组,数组名为a,数组的大小为5,即有5个元素:a0,a1,a2,a3,a4。2数组使用中的注意事项数组使用中需注意以下几点:(1)C语言中数组元素的下标从0开始。(2)在相同作用域内,数组名不能和程序中其它变量名相同。(3)数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。(4)不能在方括号中用变量来表示元素的个数,但可以是符号
4、常数或常量表达式。3数组元素的初始化数组元素的初始化即对数组元素赋初值。对全部数组元素赋初值,可以省略方括号内的数组长度值。例如:inta5=1,2,3,4,5;或者:inta=1,2,3,4,5;表示定义了整型数组a,a中有5个元素,它们的初值分别是:a0=1、a1=2、a2=3、a3=4、a4=5。对数组的前面部分元素赋初值,不可以省略方括号内的数组长度值。例如:inta5=1,2;表示整型数组a中有5个元素,其中数组元素a0的初值为1,a1的初值为2,a2、a3、a4、a5的初值为默认值0。例2.1求Fibonacci数列的前30项并输出它们。注:Fibonacci数列定义为:F(0)=
5、1,F(1)=1,F(n)=F(n-1)+F(n-2),即1,1,2,3,5,8,13,21,34,55,89,#includeusingnamespacestd;intmain()inti;intf30=1,1;/初始化数组前2个元素for(i=2;i30;i+)fi=fi-1+fi-2;for(i=0;i30;i+)coutfiendl;2数组使用中的注意事项数组使用中需注意以下几点:(1)C语言中数组元素的下标从0开始。(2)在相同作用域内,数组名不能和程序中其它变量名相同。(3)数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。(4)不能在方括号中
6、用变量来表示元素的个数,但可以是符号常数或常量表达式。2.2结构1结构的定义结构的定义结构体是用户自定义的新数据类型,在结构体中可以包含若干个不同数据类型的数据项,从而使这些数据项组合起来反映某一个信息。struct结构体名数据类型成员名1;数据类型成员名2;数据类型成员名n;例如:定义结构体student描述学生信息:structstudentlongid;/学号charname20;/姓名intsex;/性别intage;/年龄charaddress80;/家庭2.2结构 2结构体变量的声明结构体变量的声明(1)定义结构时声明struct student long id;char name
7、20;char addr30;student1,student2;(2)定义结构体后声明struct student long id;char name20char addr30;struct student s1,s2;/*声明结构体变量s1,s2 */(3)使用typedef 语句定义结构体 typedef struct long id;char name20;char addr30;student;student s1;student并非结构体变量,而是结构体类型(相当于struct student)。student就是一个新的类型名,并且是结构体类型名。3结构体数据成员的访问一个结构体
8、中包含多个数据成员,成员变量可以是简单数据类型或者数组和结构。可以通过以下方式访问结构体数据成员。(1)通过结构体变量名访问数据成员(2)通过结构体指针来访问数据域。例2.2设计student结构体变量,访问并输出结构体数据成员。#include#includetypedefstruct/*定义结构体student*/longid;charname20;charsex;intage;charaddress80;charphone20;student;intmain()/通过结构体变量名访问数据成员students1;/声明创建一个结构体变量s1/s1.id=98;/为s1的数据子域提供数据s1
9、.age=21;strcpy(s1.name,”李明”);/输出结构体变量s1的内容printf(“n学号:%d”,s1.id);printf(“n姓名:%s”,s1.name);printf(“n年龄:%d”,s1.age);/通过结构体指针来访问数据域student*s2;/声明指针变量ps2=(student*)malloc(sizeof(student);/分配存储单元,首地址赋给p指针s2-age=20;(*s2).id=100;printf(“n学号:%d”,s2-id);printf(“n年龄:%d”,s2-age);指针PARTTHREE指针是语言中广泛使用的一种数据类型,运用
10、指针编程是语言最主要的风格之一。使用指针可以使程序简洁、紧凑、高效;有效地表示复杂的数据结构;能很方便地使用数组和字符串;动态分配内存,直接访问内存地址;得到多于一个的函数返回值等,极大地丰富了语言的功能。正确理解和使用指针也是初学者在语言编程中的主要难点之一。2.3.1 指针的定义及运算1指针变量的定义C语言中有各种类型的变量,变量的类型决定所分配内存单元的大小,如:整型int是2字节,长整型long是4字节。每一个变量在内存中都有一个存储位置,这个位置就是该变量的地址,对变量值的存取是通过地址进行的。C语言中用指针变量来存放另一变量的地址。格式为:*;例如:以下pi,pa,pp均为指针变量
11、。int*pi;/pi为指向整型变量的指针char(*pa)3;/pa为指向数组空间的指针int*pp;/pp为指向指针变量的指针指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,类型的不同,并不影响指针本身空间大小的不同(都是内存地址值),但却决定了指针所指向的空间的不同,也带来了对指针所指向空间的不同操作。2指针变量的运算(1)指针的引用和赋值定义一个指针后,必须先给它赋值后才能引用,否则易出错。体会以下操作运算,理解取地址运算符&,指针运算符*的操作。inti,*p1,*p2;i=6;p1=&i;/赋给同类型的变量地址值p2=p1;/赋给同类型的指针变量的值*p1=6;/给p1
12、所指向的变量赋值6*p2=3;/给p2所指向的变量赋值3(2)指针的加减运算指针的类型是它所指向变量的类型,指针的加减运算对应了指针所指向的空间的变化。例如:int a10,*p;p=a;/p指向数组a中的a0元素 p=p+1;/这时p指向a1指针和数组分别有如下的特征。指针:动态分配,初始空间小。数组:索引方便,初始空间大。指针的值是数据存放位置的地址,指针可以随时指向任意类型的内存块,它的特征是可变。数组的本质是一系列的变量。数组名对应着一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。实际应用中数组的维数有时是需动态生成的,所以常用指针来操作动态内存。当数组作为函数的参数
13、进行传递时,该数组自动退化为同类型的指针。2.3.2 数组指针和指针数组 1数组指针数组指针是指向数组的指针,例如:int(*p)5;()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是5,也可以说是p的步长。也就是说执行p+1时,p要跨过5个整型数据的长度。如要将二维数组赋给指针,应这样赋值:inta34;int(*p)4;/该语句是定义一个数组指针,指向含4个元素的一维数组。p=a;/将该二维数组的首地址赋给p,也就是a0或&a00。p+;/该语句执行过后,也就是p=p+1,p跨过行a0指向了行a1所以数组指针也称指向一维数组的指针,亦称行指针。2指针数组指针数
14、组是指针构成的数组。首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针。例如:int*p5。优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有5个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素。注意:p=a;这样赋值是错误的,因为p是个不可知的表示,只存在p0、p1、.p4,而且它们分别是指针变量可以用来存放变量地址。但可以*p=a;这里*p表示指针数组第一个元素的值,即a的首地址的值。在编程中,选择使用指针数组主要有如下两个原因:各个指针内容可以按需要动态生成,避免了空间浪费。各个指针呈数组形式排列,索引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术ppt第2章 C语言回顾 软件技术 ppt 语言 回顾