结构体类型的复习

2018年4月5日,12:21


运行结果如下:


定义结构体类型的方法:

struct 结构体名{成员表列}(结构体变量名);

定义结构体类型应当注意以下几点:

1."struct" 和后面的";" 必不可少。

2.结构体名可以没有,结构体变量名可以没有,但"struct"必须有。

3."struct+结构体名"  为结构体类型名。

4.只能对结构体的各成员进行赋值,不能对类型赋值。

5.结构体的各成员必须进行类型声明,成员命名规则与变量名相同。

6.将一个变量定义为标准类型(基本数据类型)与定义为结构体类型的不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如struct student类型),因为可以定义出许许多多种具体的结构体类型。而在定义变量为基本数据类型如整型时,只需简单的定义为int类型即可。(比如struct student s;和  int s;)

7.不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量的各成员进行输入输出。

8.成员也可以是结构体变量(结构体类型的变量名),在进行输出操作时,应当用若干个成员运算符(结构体变量.成员),一级一级地寻找最低一级的成员(不是结构体类型),只能对最低级的成员进行操作。

9.结构体变量中的成员与普通变量同级,可以像普通变量一样进行赋值,输入,运算,输出等操作。

10.可以引用结构体变量中的成员的地址,也可以引用结构体变量的地址。(结构体变量的地址主要用作函数参数,传递结构体变量的地址。)

11.成员名可以与程序中的变量名相同,如上述程序中 假使把char leader_name[20]; 改成char leader[3];  是可以的,但是这个leader[3]与结构体中的leader[3]互不干扰。


指向结构体变量的指针:


运行结果如下:


显然,在函数执行时,将结构体变量"stu_1"的起始地址赋给指针"*p",接着对"stu_1"的各成员赋值,第一次用"stu_1.成员"的形式进行输出,第二次用"(*p).成员"的形式,输出结果一致。

这里需要注意一下(*p)两侧的小括号不可省去,因为成员运算符"."的优先级要高于"*"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值