struct { int num; char name[20]; char sex; int age; float score; }student1,*student2;结构体变量student1 , student2的长度分别是多少
时间: 2024-10-10 15:02:36 浏览: 32
详解C++中的指针结构体数组以及指向结构体变量的指针
在C语言中,`struct`类型的大小是由其内部各个成员的数据类型及其长度所决定的。对于给定的`student`结构体:
```c
struct {
int num;
char name[20]; // 一个字符数组,实际长度是20字节(包括空字符'\0')
char sex;
int age;
float score;
} student1;
```
每个`int`通常需要4字节,`char`也需要1字节(但在现代系统中,由于Unicode编码的影响,`char`可能也占2字节),所以`num`、`sex`, 和 `age`各占4字节。加上`name[]`数组占用的空间(20字节),`student1`的总长度大约是4 + 1 + 4 + 4 + 4 = 17字节。
对于指针`student2`,它存储的是`student1`类型的地址,额外还需要1个字节用于存放地址本身,因此`student2`作为一个指针变量占用空间为1字节。
总结起来:
- `student1`的长度约为17字节。
- `student2`作为指针的长度约为1字节。
阅读全文