当前位置: 代码迷 >> 综合 >> C语言(结构体、枚举、typedef)笔记 by STP
  详细解决方案

C语言(结构体、枚举、typedef)笔记 by STP

热度:23   发布时间:2024-01-20 21:23:15.0

1.结构体 struct

格式:

struct Student{char *name;int age;float height;
};struct Student s;//定义一个结构体变量

//给结构体成员赋值
s.name="kristy";
s.age=22;
s.height=1.63;

可连写并省略结构体名

struct {char *name;int age;float height;
} s;


2.枚举 enum

格式:

enum Season{spring,summer,autumn,winter};enum Season s;//定义一个枚举变量

可连写并省略枚举名

<span style="font-size:18px;">enum {spring,summer,autumn,winter} s;</span>



3.typedef 

作用:为各种数据类型起别名,可使代码变得简洁。


typedef与#define的区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。2)typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名。
3)#define后面无需写“;” typedef需要写“;”

<span style="font-size:18px;">#define String1 char * // </span><span style="font-size:14px;">遇到String1 替换为 char *</span><span style="font-size:18px;">typedef char *String2;//  </span><span style="font-size:14px;">用String2 <span style="font-family: Arial, Helvetica, sans-serif;">表示char  *</span></span><span style="font-size:18px;">
</span><span style="font-size:18px;">
int main(int argc, const char * argv[]) {String1 str1, str2;String2 str3, str4;return 0;
}</span>

str1,str3,str4为指针变量,str2为char类型变量