我是靠谱客的博主 顺利火龙果,最近开发中收集的这篇文章主要介绍C中几种相对不常用类型 - 结构体,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

结构体

定义方法
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中几种相对不常用类型 - 结构体所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部