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

C语言第14次课.doc

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

8.4 指向结构体类型数据的指针 8.4.1 结构体指针变量的定义和初始化 指向结构体变量的指针也称为结构体指针,它指向结构体变量的存储首地址。 1、结构体指针变量的定义 方法和结构变量相似,只需说明它为指针类型即可 例如: struct stu { int num; char *name; char sex; float score; }*student1;说明student1就是一个结构体指针变量。 2、结构体指针变量的初始化 结构体指针变量的初始化就是在定义结构体指针变量的同时赋予其结构体变量的地址。 例如: struct stu { int num; char *name; char sex; float score; }student1,*student2; student1={“1001”,”zhanghua”,”female”,”83”}; student2=student1; 8.4.2 结构体指针的应用 【例8.3】通过本例掌握结构体指针的应用方法 struct stu { int num; char *name; char sex; float score; } boy1={102,Zhang ping,M,78.5},*p; main() { p=boy1; printf(Number=%d\nName=%s\n,boy1.num,boy1.name); printf(Sex=%c\nScore=%f\n\n,boy1.sex,boy1.score); printf(Number=%d\nName=%s\n,(*p).num,(*p).name); printf(Sex=%c\nScore=%f\n\n,(*p).sex,(*p).score); printf(Number=%d\nName=%s\n, p-num, p-name); printf(Sex=%c\nScore=%f\n\n, p-sex, p-score); } 本例程序定义了一个结构stu,定义了stu类型结构变量boy1并作了初始化赋值,还定义了一个指向stu类型结构的指针变量p。在main函数中,p被赋予boy1的地址,因此p指向boy1。然后在printf语句内用三种形式输出boy1的各个成员值。从运行结果可以看出: 结构变量.成员名 (*结构指针变量).成员名 结构指针变量-成员名 这三种用于表示结构成员的形式是完全等效的。 8.5 结构体与函数 8.5.1 结构体变量作函数参数 结构体作函数参数与数组作函数参数类似结构体成员字段变量作函数参数和整个结构体作函数参数两种情况。字段变量作函数参数是作函数的实参,与对应类型变量一样处理。struct position { int x; int y; }; int max(x, y) { return xy?x:y; } void main() { struct position p; p.x = 5; p.y = 6; printf(“Max value is:%d”, max(p.x, p.y)); } 整个结构体作函数参数,保证实参与形参的类型相同,实际上是将实参结构体成员值对应传递给形参结构体成员传递的是首地址。struct position { int x; int y; }; void changePosition(struct position p) { if(p.x p.y) p.y = p.x; else p.x = p.y; } void main() { struct position p; p.x = 5; p.y = 6; changePosition(p); printf(“Current position is:%d,%d”, p.x, p.y); } 8.5.2 结构体类型的函数 结构体类型的变量也可以作为函数的返回值. 结构体类型的函数是指返回值为结构体类型的函数。例如: struct rectangle { float width; float height; float area; }; struct rectangle caculateArea(struct rectangle rect) {

文档评论(0)

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

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

1亿VIP精品文档

相关文档