概述
结构体
定义方法
struct person
{
char name[10];
int age;
char sex;
};
变量定义方法
方法1:
struct person
{
char name[10];
int age;
char sex;
};
struct person jim; //定义时,前面要加struct
方法2:
struct person
{
char name[10];
int age;
char sex;
}jim; //可以在结构体定义时,同时进行变量定义
以这种方法定义时,可以使用无名结构体如下:
struct
{
char name[10];
int age;
char sex;
}jim;
这样,只能定义一个结构体变量jim。下面再需要时就无法定义了。
变量引用方法
一般结构体,jim.age
结构体指针,jim->age
要注意对其中指针变量的操作,比如name:
struct person *tom;
strcpy(tom->name, "yfpeng");
而不能用 tom->name = "yfpeng";
结构体数组
struct person
{
char name[10];
int age;
char sex;
}key[3];
key[0].age = 80;
与普通数组的使用相同。
结构体指针
struct person
{
char name[10];
int age;
char sex;
}*tom;
结构体指针同其它指针变量一样,要经过初始化。
tom = (struct person *)malloc(sizeof(struct person));
前面已经说过结构体指针,引用内部变量用->,其实这个符号的作用如下:
tom->age = 20;
(*tom).age = 20;
是一个取值操作,为了方便而引入了 ->
结构体的大小
sizeof(struct person)
理论上应该等于结构体内各变量加起来的大小之和。但由于内存存储方式的原因,往往得到的结果与理论不符。
结合typedef定义结构体为一个新类型
typedef struct person
{
char name[10];
int age;
char sex;
}tom;
这样,tom被定义为一个新类型,其实就是struct person。这种情况下,可以使用无名结构体,不用指明person了。使用方法如下:
tom t;
t.age = 80;
最后
以上就是顺利火龙果为你收集整理的C中几种相对不常用类型 - 结构体的全部内容,希望文章能够帮你解决C中几种相对不常用类型 - 结构体所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复