c语言从结构体中读取数据类型,C语言自定义数据类型中的结构体,枚举,联合详解...
时间: 2023-07-09 21:34:13 浏览: 176
C结构体、共用体和枚举类型详解
C语言中,结构体是一种自定义数据类型,可以将不同类型的变量组合在一起,形成一个新的数据类型。结构体定义的基本形式如下:
```c
struct 结构体名 {
数据类型 成员名1;
数据类型 成员名2;
// ...
};
```
其中,结构体名是用户自定义的名称,成员名是结构体中每个成员的名称,数据类型可以是任意C语言的数据类型,包括基本数据类型和自定义数据类型。
结构体变量的定义方式如下:
```c
struct 结构体名 变量名;
```
读取结构体中的成员变量可以通过“.”运算符来实现,例如:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person p;
printf("请输入姓名:");
scanf("%s", p.name);
printf("请输入年龄:");
scanf("%d", &p.age);
printf("姓名:%s,年龄:%d\n", p.name, p.age);
return 0;
}
```
枚举是一种特殊的数据类型,用于定义一组常量。枚举的定义方式如下:
```c
enum 枚举名 {
常量名1,
常量名2,
// ...
};
```
其中,枚举名是用户自定义的名称,常量名是枚举中每个常量的名称。枚举常量的值默认是从0开始自动递增的,也可以手动指定值。例如:
```c
#include <stdio.h>
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
int main() {
enum Weekday today = Tuesday;
printf("今天是星期%d\n", today + 1);
return 0;
}
```
联合是一种特殊的数据类型,它的成员变量共享同一块内存空间。联合的定义方式如下:
```c
union 联合名 {
数据类型 成员名1;
数据类型 成员名2;
// ...
};
```
其中,联合名是用户自定义的名称,成员名是联合中每个成员的名称,数据类型可以是任意C语言的数据类型,但所有成员的大小不能超过联合的大小。例如:
```c
#include <stdio.h>
union Number {
int i;
float f;
};
int main() {
union Number n;
n.i = 123;
printf("int: %d, float: %.2f\n", n.i, n.f);
n.f = 3.14;
printf("int: %d, float: %.2f\n", n.i, n.f);
return 0;
}
```
以上就是C语言中自定义数据类型中的结构体、枚举、联合的基本用法和注意事项。
阅读全文