第九章系统安全性 914结构体型变量及其成员的引用 (1)变量成员的引用方法(成员运算符“"):如前例 结构体类型 struct staff下定义的两个变量 worker 1, worker2, 二变量中的每个成员均可引用,且所引用的成员变量与其所 属类型的普通变量一样可进行该类型所允许的任何运算。例 如: worker l. realsum=worker 1. salary-worker 1 cost worker 2. salary=worker I salary scantron oS", workerI name scanf("%/od,&worker 1. cost 又如: struct student stu 1,stu2;之后,变量stul,stu2成员的引用可以是: stu2 num=stu l num+1 stul age + scanf("%ld",&stul num);
第九章 系 统 安 全 性 9.1.4 结构体型变量及其成员的引用 (1) 变量成员的引用方法(成员运算符 “.”): 如前例 结构体类型struct staff下定义的两个变量worker1, worker2, 二变量中的每个成员均可引用,且所引用的成员变量与其所 属类型的普通变量一样可进行该类型所允许的任何运算。例 如:worker1.realsum=worker1.salary-worker1.cost ; worker2.salary=worker1.salary; scanf(″%s″, worker1.name); scanf(″%d″, &worker1.cost); 又如: struct student stu1,stu2;之后, 变量stu1,stu2成员的引用可以是: stu2.num=stu1.num + 1 ; stu1.age ++ ; scanf(″%ld″, &stu1.num);
第九章系统安全性 在C语言的运算符中,取成员运算符“.〃优先级最高, 故以上语句均为对引用之后的成员变量进行操作 若结构体定义是嵌套的,则只能引用最低级的成员(用 若干“.〃运算符,逐级引用到最低级)。 例如:在上一节定义了类型 student 1之后,若有 struct studenti stu 结构体型变量stu3的成员引用为: stu3. birthday. year stu3. birthday. month 不可对su3. birthday进行操作,因其不是最低级
第九章 系 统 安 全 性 在C语言的运算符中,取成员运算符“.”优先级最高, 故以上语句均为对引用之后的成员变量进行操作。 若结构体定义是嵌套的,则只能引用最低级的成员(用 若干“.”运算符,逐级引用到最低级)。 例如:在上一节定义了类型student1之后,若有 struct student1 stu3; 结构体型变量stu3的成员引用为: stu3.birthday.year stu3.birthday.month 不可对stu3.birthday进行操作, 因其不是最低级
第九章系统安全性 (2)结构体型变量可以整体引用来赋值:如 worker2= worker1;即将变量 worker1的所有成员的值 赋给变量 worker2的各成员。但不可进行整体的输入输出, 如: printf ("%os", worker1); 是错误的。结构体型变量只能对逐个成员进行输入或输出
第九章 系 统 安 全 性 (2) 结构体型变量可以整体引用来赋值:如 worker2=worker1;即将变量worker1的所有成员的值一一 赋给变量worker2的各成员。但不可进行整体的输入输出, 如: printf (″%s″ , worker1); 是错误的。结构体型变量只能对逐个成员进行输入或输出
第九章系统安全性 (3)结构体型变量占据的一片存贮单元的首地址称为该结 构体型变量的地址,其每个成员占据的若干单元的首地址称 为该成员的地址,两个地址均可引用。如: scant("od",& worker 1. salary);输入v workeri. salar 个成员的值 printf( OX%x" &worker1) 输出 worker 个结 构体型变量的首地址
第九章 系 统 安 全 性 (3) 结构体型变量占据的一片存贮单元的首地址称为该结 构体型变量的地址,其每个成员占据的若干单元的首地址称 为该成员的地址, 两个地址均可引用。 scanf(″%d″ , &worker1.salary); 输入worker1.salary—— 一 个成员的值。 printf(″0x%x″ , &worker1); 输出worker1—— 一个结 构体型变量的首地址
第九章系统安全性 91.5结构体型变量的初始化 例如:已定义结构体类型如前,则: stul的初始化: struct student stul={99001,"Wang-Wei","f, 21}; stu3的初始化: struct student1 stu3={99010,"Liu-Png",tn {1987,10,2}}; 所有结构体型变量,不管是全局变量还是局部变量,自 动变量还是静态变量均可如此初始化
第九章 系 统 安 全 性 9.1.5 结构体型变量的初始化 例如:已定义结构体类型如前, 则: stu1的初始化:struct student stu1={99001, ″Wang -Wei″ , ′f′ , 21}; stu3的初始化:struct student1 stu3={99010, ″Liu -Ping″ , ′m′ , {1987,10,2}}; 所有结构体型变量,不管是全局变量还是局部变量,自 动变量还是静态变量均可如此初始化