结构体类型和变量定义及基本操作

结构体的定义
struct Teacher
{
	char name[64];
	int age;
	int id;
};
void main()
{
	struct Teacher t1;   // 告诉C编译器给我分配内存
	system("pause");
	return;
}

类型的重定义
typedef struct Teacher
{
	char name[64];
	int age;
	int id;
} Teacher;

void main()
{
	Teacher t1;     // struct 关键字是可以省略的
	system("pause");
	return;
}

初始化结构体变量的三种方法
  • 方法1
typedef struct Teacher
{
	char name[64];
	int age;
	int id;
} Teacher;
void main()
{
		// 1. 定义变量的同时初始化变量
		Teacher t1 = { "aaa" , 31, 1};
}
  • 方法2
// 2. 初始化变量的第二种方法
struct student2
{
	char name[64];
	int age;
}s5 = { "name", 21 };
  • 方法3
// 3. 初始化变量的第三种方法
struct
{
	char name[64];
	int age;
}s6 = { "name", 21 };

Teacher t1;
t1.age = 20;
这个. 是寻址操作,是计算这个age相对于t1大变量的偏移量
注意这是计算   是在CPU中进行,并没有操作内存.
是在 = 的时候才是操作内存. 
// 初始化变量的三种方法
	// 1. 定义变量的同时初始化变量
	Teacher t1 = { "aaa" , 31, 1};
	{
		Teacher *p = NULL;
		p = &t1;
		// -> 是寻址操作,计算属性相对于t2大变量的偏移量
		printf("p->age : %d\n", p->age);
		printf("p->name : %s\n", p->name);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值