结构体
1.声明结构体变量
在main函数前声明结构体变量
struct 结构体名称 {
int a;
long b;
char d;
};
也可以不加名字,形成匿名结构体,
struct {
int a;
long b;
char d;
};
但该结构体不可直接使用,一般只用一次。
若想使用,则在大括号后加上b变量m名
struct {
int a;
long b;
char d;
}st1,st2;
若不想再之后使用结构体时重复打struct,可以使用typedef函数来声明结构体
typedef struct {
int a;
long b;
char d;
}结构体名称;
2.如何给结构体变量赋值
例如
#include<stdio.h>
typedef struct {
int a;
long b;
char d[15];
} ;
int main(){
st st1 ={12, 34567, "Hello World"};
return 0 ;
}
在这里,我们就给a值赋值12,给b赋值34567,给d赋值"Hello World"
赋值格式为
结构体名称 变量名 = {值1, 值2, 值3……};
调用时则是
结构体变量名.结构体内变量名
例如我们想输出st1中的b,则
printf("%ld",st1.b);
在函数中调用则是用指针,首先讲如何声明结构体指针,以上述为例
st *pst1 = &st1;
在函数中调用结构体内变量则是用箭头而不是点
void add(st *pst){
int a = 0;
a = (int)pst->b + 1
printf("%d",a)
}
结构体内存大小计算:由于结构体存在内存对齐,结构体内存为变量数*占内存最大变量的1内存。