网站大量收购独家精品文档,联系QQ:2885784924

配套课件 C语言程序设计(第三版)--刘国成.ppt

配套课件 C语言程序设计(第三版)--刘国成.ppt

  1. 1、本文档共211页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例 根据需要设置条件编译,能将字母全改为大写输出,或全改为小写字母输出。 10.1 结构体 10.2 共用体 10.3 枚举类型 10.4 用typedef定义类型 问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用C语言程序存储并处理一组学生的学籍。 单个学生学籍的数据结构 学号(num):int型 姓名(name):char [ ] 型 性别(sex):char型 年龄(age):int型 分数(score):float型 这些信息数据之间相互关联,适合看作一个整体。 但数据类型不一致,仅用已学数据类型无法解决。 需要构造一种新的数据类型————结构体。 10.1 结构体 10.1.1 定义(声明)结构体类型 struct [结构体名] { 数据类型1 成员名1; 数据类型2 成员名2; …… 数据类型n 成员名n; }; { }中是组成该结构体的成员。成员类型可以是基本型或构造型 struct是关键字, 不能省略 用户定义的合法标识符。 可省:无名结构体 末尾分号不能省 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a数组 p p+1,a+1 p+i,a+i p+9,a+9 a[0] a[1] a[2] a[3] a[9] ... p p+9 p+1 p+2 地址 元素 指针法 *p *(p+1) *(p+2) *(p+9) 下标法 指针的算术运算: p++, p--, p+i, p-i, p+=i, p-=i 若p1与p2指向同一数组,p1-p2=两指针间元素个数 8.5 指向指针的指针与指针数组 8.5.1 指向指针的指针 一级指针:指针变量中存放目标变量的地址 p1 p2 i 3 P2(指针变量) i(整型变量) 例 int **p1; int *p2; int i=3; p2=i; p1=p2; **p1=5; 二级指针:指针变量中存放一级指针变量的地址 例 int *p; int i=3; p=i; *p=5; i 3 P(指针变量) i(整型变量) 一级指针 单级间接寻址 二级指针 一级指针 目标变量 二级间接寻址 8.5.2 指针数组 1.指针数组的定义 指针数组是指一个数组的各个元素均为指针类型数据,即指针数组中的每一个元素都相当于一个指针变量。一维指针数组的定义形式如下: 类型名 *数组名[数组长度] 例如: int *num[4]; 相当定义了4个指针变量,分别是num[0],num[1],num[2],num[3],它们存贮四个整型变量的地址。 2.指针数组元素存贮普通变量的地址 int a=10,b=20,c=30; int *n[3]={a,b,c}; 相当于: n[0]=a; n[1]=b; n[2]=c; 3.指针数组元素存贮一维数组的首地址 int a[3]={1,2,3}; int b[3]={4,5,6}; int *p[2]; C规定数组名就是数组第一个元素的指针,所以可进行如下赋值: p[0]=a; p[1]=b; 8.6 指针与二维数组 二维数组名作为指针而言,其基类型是一维数组。 思考:a[i]+j 是何含义? a[0][3] a[0][2] a[0][1] a[0][0] a[1][3] a[1][2] a[1][1] a[1][0] a[2][3] a[2][2] a[2][1] a[2][0] a[0] a[1] a[2] a+0 a+1 a+2 a[0]+0 a[0]+1 a[0]+2 a[0]+3 a[1]+0 a[1]+1 a[1]+2 a[1]+3 a[2]+0 a[2]+1 a[2]+2 a[2]+3 a+i 表示指向二维数组第i行的指针 称之为“行指针” a[i]+j表示指向第i行第j列元素的指针 称之为“列指针” 访问数组元素 a[i][j] ? *(a[i]+j) ? *(*(a+i)+j) (1) 指向二维数组元素的指针变量 main() { static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0];pa[0]+12;p++) { if((p-a[0])%4==0) printf(\n); printf(%4d ,*p); } } p =*(a+0); p=a[0][0];

文档评论(0)

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

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

版权声明书
用户编号:7201060146000004

1亿VIP精品文档

相关文档