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

第9章_用户自己建立数据类型重点.ppt

  1. 1、本文档共140页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章;第9章 用户自己建立数据类型;9.1 定义和使用结构体变量;9.1.1 自己建立结构体类型;struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; };;声明一个结构体类型的一般形式为: struct 结构体名 { 成员表列 }; ; 说明: (1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如: struct Teacher struct Worker struct Date 等结构体类型各自包含不同的成员;(2) 成员可以属于另一个结构体类型。 struct Date     { int month; int day; int year; };   struct Stu   { int num; char name[20]; char sex; int age; struct Date birthday; char addr[30];  };;9.1.2 定义结构体类型变量;1. 先声明结构体类型,再定义该类型变量 声明结构体类型struct Student,可以用它来定义变量 struct Student student1,student2;;2. 在声明类型的同时定义变量 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1,student2;;3. 不指定类型名而直接定义结构体类型变量 其一般形式为: struct { 成员表列 } 变量名表列; 指定了一个无名的结构体类型 。;结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。 结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。 对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。;9.1.3 结构体变量的初始化和引用;;(2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取以及运算(自顶而下的完整路径).例如: 对上面定义的结构体变量student1, 可以这样访问各成员: student1.num student1.birthday.month 注意: 不能用student1.birthday来访问student1变量中的成员birthday, 因为birthday本身是一个结构体类型。;(3) 对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进??的运算)。例如: student2.score=student1.score;   sum=student1.score+student2.score;   student1.age++;   ++student1.age; 由于“.”运算符的优先级最高,因此student1.age++是对student1.age进行自加运算,而不是先对age进行自加运算。;;与其他类型变量一样, 对结构体变量可以在定义时指定初始值。 例9.1把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。 解题思路: 自己建立一个结构体类型,包括有关学生信息的各成员 用它定义结构体变量,同时赋以初值 输出该结构体变量的各成员;#include stdio.h int main() { struct Student { long int num; char name[20]; char sex; char addr[20]; }a={10101, “Li Lin”, ‘M’, “123 Beijing Road”}; printf(NO.:%ld\nname:%s\n sex:%c\naddress:%s\n, a.num,a.name,a.sex,a.addr); return 0; } ;#inc

文档评论(0)

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

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

1亿VIP精品文档

相关文档