@lishuhuakai
2015-05-17T17:26:09.000000Z
字数 1111
阅读 1633
1.自己定义一个数据类型 数据类型的本质是固定大小内存块的别名
2.注意结构体类型定义变量的时候,c和c++编译器的处理行为不一样。
3.结构体类型typedef
4.结构变量内存四字节存放
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//1.自己定义一个数据类型,数据类型的本质是固定大小内存块的别名
//2..c和.cpp定义结构体类型定义变量的时候,c和c++编译器的处理行为不一样
//3.结构体类型typedef
//4.结构变量内存四字节存放,
typedef struct Teacher
{
char name[62];
int age;
char title[128];
/************************************************************************/
/*
char name[62]; // 62字节
char c1; //1字节
char c2; //1字节
int age; //4字节
一共68字节 */
/************************************************************************/
/************************************************************************/
/*
char name[62]; //62字节
char c1; //63 + 1空闲字节
int age; //4字节
char c2; //1字节 + 3空闲字节
一共72字节 */
/************************************************************************/
}Teacher;
//结构体变量的初始化3种方法
//结构体定义变量的4种方法
//结构体变量的复制方法,操作结构体变量
void main()
{
//告诉编译器要分配内存
struct Teacher t1; /*使用struct Teacher直接定义*/
Teacher t2 = { "dddd", 40, "dffd" };/*只有使用了tyededef重命名了结构体才能这样用*/
/*常用的初始化方法就上面一种*/
printf("sizeof(char):%d\n", sizeof(char));
t1.age = 10; /*通过.直接赋值*/
Teacher *p = NULL; /*通过指针间接赋值*/
p = &t1;
p->age = 20;
printf("sizeof(Teacher):%d\n", sizeof(t1));
system("pause");
}
练习
c