C++入门学习5-共用体,枚举类型,宏定义

入门学习五

  • 共用体
  • 枚举类型
  • 宏定义

共用体

共用体也称为联合体,其特点就是用一段连续的内存存储多个不同数据类型的数据,在写法上与结构体相似,但是在同一时刻,共用体中只有一个值是有效的,其大小由共用体中最大的数据类型决定,如果对共用体中的某个值做赋值操作,那么共用体中的其他值也会随之改变,所以,只有最后一次赋值是有效正确的
共用体的一般形式

union myUnion
{
      int i;
      char b;
      double c;
}u;

如果对某一个成员进行赋值,其他成员也会随之改变,因为他们的值的每一个二进制位都被新值覆盖

1.共用体的地址和它的各个成员的地址一致
2.不能在定义时初始化,不能用共用体变量名作为函数参数
3.不能对共用体变量名赋值,不能引用变量名获得值

枚举类型

枚举类型定义

enum 枚举类型名 {标识符列表};
enum weekday {sunday,monday,tuesday,wednesday....};

枚举类型会自动填充整型常数,如:

enum weekday {sunday=0,monday=1,tuesday=2,wednesday=3....};

如果在定义时人为填充了一部分,那么后面的标识符会根据最后一个数字累加:

enum weekday {sunday=0,monday=10,tuesday=11,wednesday=12....};

weekday就是新定义的枚举类型名
可以用weekday定义变量如:

[enum] weekday myworkday;

用枚举类型定义的变量,赋值只能赋予括号内的值(标识符)


枚举类型一旦定义,那么其中的标识符就可当做整型常数使用,如:

#include
using namespace std;
enum weekday {sunday,monday,tuesday,wednesday};
int main()
{
    cout<

C++入门学习5-共用体,枚举类型,宏定义_第1张图片

宏定义

不带参宏定义

#definde pi 3.1415926
#define HHH printf("a\n");

可以宏定义一个常数,表达式,格式字符串等
宏定义嵌套

#define pi 3.1415926
#define x pi*pi

终止宏定义

#undef pi

带参数的宏定义

#define MUL(x,y) ((x)*(y))

注意:1.参数之间,需要加上括号,整体也需要加上括号,是为了保护低优先级的运算符
2.宏名和带参数的括号之间不能加空格,否则将空格以后的字符都作为替代字符串的一部分!


【样例1】用宏定义操作for循环输出666

#include
using namespace std;
#define For(n) int i;for(int i=1;i<=n;i++)cout<<"666"<

【样例2】宏定义for循环

#include
using namespace std;
#define _for(i,a,b) for(i=a;i<=b;i++)
int main()
{
    int i;
    _for(i,1,5)
    cout<<"777"<

你可能感兴趣的:(考研C语言,基础知识点,c++,学习,c语言)