对结构体的理解
在C语言中,数据类型被分为基础数据类型和复合数据类型。
对于基础数据类型我们都有了解,如int,char等,但复合数据类型又是什么情况呢?
复合数据类型分为结构、联合、和枚举。这里我们只谈结构(structure)
结构体的声明和定义
struct 【结构体名称】{
成员1;
成员2;
……
} 结构体变量名;*//一定要加分号,这是一个声明的结束。*
例如:声明一种水果的信息
struct fruits{
char name[20];
double price;
double weight;
}a,b,c;
这样我们就成功声明了变量a,b,c;
注意,我们只是声明了a,b,c,并不能给它们赋值,因为对于计算机来说struct{}和int是一个意思,都只是一种类型声明,正如同手搓出一个框架一样。当然,此时struct也是不占用内存的。
- 我们也可以不加fruits,只声明a,b,c。但这样的结果是我们只能定义a,b,c,不能再定义别的变量。
结构体的使用
说完了声明,我们接下来学学如何使用结构体。
与常见的声明一样,我们可以在定义结构体时就初始化,也可以先定义在使用的时候再初始化。
struct fruits{
char name[20];
double price;
double weight;
}a={"apple",5.8,1.0};
int main()
{
struct fruits b={"banana",6.8,2.0};
return 0;
}
结构体的使用也有两种方式,一种是直接引用,另一种是使用指针:
直接引用
使用变量名.成员名
struct fruits{
char name[20];
double price;
double weight;
}a={"apple", 5.8, 1.0};
int main()
{
struct fruits b={"banana", 6.8, 2.0};
printf("%s %lf %lf",a.name,a.price,a.weight);
return 0;
}
使用指针
使用【->】
struct fruits{
char name[20];
double price;
double weight;
}a={"apple", 5.8, 1.0};
int main()
{
struct fruits b={"banana", 6.8, 2.0};
struct fruits *p=&b;
printf("%s %lf %lf",p->name,p->price,p->weight);
return 0;
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿刁!
评论