结构体变量的引用

        定义了结构变量后就能在程序中引用它了,在ANSIC中除了允许具有相同类型的构变量相互赋值以外,不能整体引用结构变量,而只能引用结构变量中的成员。结构变量的成员与普通变量一样可以参与各种运算,对结构变量的赋值、存取、运算都是通过引用其成员进行的。引用结构变量成员的方式为:结构变量名·成员名
     其中,“.”是成员运算符。在C语言中,成员运算符”,”的优先级高于其他运算符,其结合方向是从左到右。例如,表达式“book1.price十十”相当于“(bookl.price)十十”。
使用结构变量时需注意:
(1)可以引用结构变量成员的地址,也可以引用结构变量的地址。如

/*输人studentl.num的值*/
scanf("%d",&studentl.num);
/*输出studentl的首地址*/
printf("%o",&studentl);

        结构变量的地址主要用作函数参数,传递结构变量的地址。但是不能把结构变量作为一个整体进行赋值、存取或运算,只能对结构变量的成员进行赋值、存取或运算。例如对于定义的结构变量bk1,下面的用法是错误的。

printf("%d %s %s %s %s %f",bkl);
bkl = (1001,"c programming","computer","xuwei","renminyoudian press",39.0} ;

(2)对结构中数组成员的引用也是通过逐个引用数组元素来实现的,如:bk1.bname[0]
='a’。对于嵌套结构变量,要使用多个成员运算符引用其最低级的成员。
(3)相同类型的结构变量之间可以进行整体赋值,但是不能进行关系运算。
【例9.4】结构变量的赋值使用示例。
 

#include<stdio.h>
struct books
{
int bno;
char bname[20],field[10],author[10],publisher[30];
float price ;
};
int main( )
struct books bookl =(101 ," VB programming" ," computer" ," zys" ," zhongguodianli press" ,29.8};
struct books book2 = {102 ," C programming" ," computer" ," xuwei" ," renminyoudian press",39.0);
book2=bookl;
printf("book2. bno=%d,book2. bname= %s\n" ,book2. bno,book2. bname);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值