C语言中
一在声明的时候定义变量
#include<stdio.h>
struct st
{
int v_a;
}st_value; //相当于struct st st_value;
int main()
{
printtf("st len=%d byte",sizeof(struct st));//打印struct st所占字节
}
这里需要注意的地方时 st_value只不过是在定义结构体的时候同时定义了一个结构体类型的变量而已;
二
#include<stdio.h>
struct st
{
int v_a;
struct st *next;
// struct st v_b; // 定义struct st 类型的变量 这样定义时错误的
};
int main()
{
printtf("st len=%d byte",sizeof(struct st));//打印struct st所占字节
}
这里有三点
1)指针的大小在32位系统中占4个字节,64位系统占8字节;
2)结构体对齐方式,默认以当前结构体中数据类型中最大的为标准进行进行字节对齐;
3)结构体在没用完全定义之前无法用来定义其他变量,因为代码是从上往下执行;而定义结构体指针可以原因是指针大小是固定的,无论是哪种结构体,指针大小是固定的。
四
typedef可以为变量取别名