C++语言基础教程(第二版)吕凤翥 第七章 结构和联合

1.结构

  结构和数组一样,都是数目固定的若干变量的有序集合,区别在与结构中的若干成员可以是不同类型的。

  定义: struct 结构名 {若干成员说明};

  结构变量定义: struct 结构名 变量名;

  使用一个结构体变量给另一个赋值时,只涉及值拷贝。

  C++较少使用结构和联合,更多使用class来定义类。  

struct student {
char* name;
int age;
}s1,s2={"zbwang",28};

struct student s3,*pointer=&s3;

s2.age = 29;
pointer->age=29;

2.联合

  定义: union 联合名 {联合成员说明};

  联合和结构体的根本差别在于联合类型的所有成员是共址的,而结构体每个成员与其他成员都有不同的内存地址。

  联合类型只能用在具有若干个相互排斥的变量情况下。(比如联合类型的成员对于一个对象只会有一个是有意义的)

#include <iostream>
using namespace std;
 
union student {
    int maleAge;
    int femaleAge;
}s1, s2;

void main(){
    s1.maleAge = 88;
    s1.femaleAge= 99;    
    cout << s1.maleAge<< endl;//99 实际上此时只有femaleAge是有效的
    cout << s1.femaleAge<< endl;//99
}

猜你喜欢

转载自www.cnblogs.com/focusahaha/p/12582862.html
今日推荐