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

[工学]c语言第7章-2课时.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]c语言第7章-2课时

2、变量的三要素:名字、类型与值 直接访问:按变量名来存取变量值 间接访问:通过存放变量地址的变量去访问变量 任务三 了解指针变量的定义和初始化 任务五 了解指针与数组 任务七 了解指针与函数 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j ----- 第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 【案例7-3】用指针表示法输出二维数组的首地址,各行首地址及各个元素的值。 二维数组的指针作函数参数 用指向变量的指针变量 用指向一维数组的指针变量 用二维数组名 数组元素指针做函数参数 【案例7-5】将数组a中的n个整数按相反顺序存放于原数组中。要求用函数实现逆序。 代码 4.指针形式的字符串操作 【案例7-6】通过指针赋值字符串。 代码 #include stdio.h #include string.h main( ) { char *from=computer; char ch[10],*to=ch; /*此处定义字符数组和字符指针*/ printf(string_from=%s\n,from); for(;*from!=\0;from++,to++) /*将from指向的字符串复制到to指向的数组ch中*/ *to=*from; *to=\0; /*字符串结尾加\0*/ to=ch; /*指针重新指向第一个元素*/ printf(\nstring_to=%s\n,to); } 5.指针数组 指针数组的定义格式为: 类型标识符 *数组名[数组元素个数]; 【案例7-7】将若干字符串按字母顺序(由小到大)输出。 〖分析〗用指针数组中的元素分别指向各个字符串。对字符串排序时,只需改动指针数组中各元素的指向。 代码 #include stdio.h #include string.h void sort(char *stuname[],int n); /*声明排序函数*/ void print(char *stuname[]); /*声明输出函数*/ main( ) { static char *stuname[]={Zhangsan,Lisi,Wangwu,Zhaoliu,NULL}; int n=4; /*字符串个数*/ sort(stuname,n); /*调用函数对字符串排序*/ print(stuname); /*调用函数输出字符串*/ } void sort(char *stuname[],int n) /*用冒泡法对字符串排序*/ { char *temp; int i,j; for(i=0;in-1;i++) for(j=i+1;jn;j++) { if(strcmp(stuname[i],stuname[j])0) { temp=stuname[i]; stuname[i]=stuname[j]; stuname[j]=temp; } } } void print(char *stuname[]) { int i=0; while(stuname[i]!=NULL) { printf(%s\n,stuname[i]); i++; } } 任务六 了解指向结构体变量的指针 struct 结构体名 *指针变量名; 例如: sturct zhigong *p,zg; 代码 任务七 了解指针与函数 任务八 知识扩展 1.malloc( )函数和free( )函数 free( )函数说明 原 型:void free(void *ptr) 功 能:该函数将ptr所指的、由malloc( )申请分配到的内存空间,交还操作系统,这部分内存由操作系统重新管理。 返回值:无。 头文件:stdlib.h 说 明:在使用返回指针之前,应当验证是该指针是否有效。 【案例7-12】动态内存分配和回收。 〖分析〗动态申请空间,存储职工数据,由指针变量p指向该空间。 2.工资管理系统之双向链表结构设计及应用 【案例7-13】用链表管理职工工资数据 ⑴定义节点 链表的节点是结构体类型,它包含若干成员,其中有些成员可以是任意普通类型,另一些(单向链表一个,双向链表两个)成员是指向同类型结构体的指针,用来存放与之相邻的节点的地址。如: struct zhigong /*结构体,采用双向链表*/ { struct zhigong *front; /*这个指针是指向s

文档评论(0)

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

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

1亿VIP精品文档

相关文档