《C/C++学习指南》语法篇—笔记 (十、结构体)


C/C++的基本数据类型:char/short/float/double 数组,指针
将基本的数据类型组合起来,形成新的数据类型 “ 自定义类型

例如:定义一个新类型 student,成员变量有 name id grade

struct student
{
	int id;
	int grade;
	char name[32];
};
结构体基本形式

基本形式: 其中,struct是关键字,TypeName为新类型的名称,Members是一系列成员变量。

struct TypeName
{
	//Members
};
结构体使用

定义一个变量 student c;
定义数组:student cs[4];
指针:student* pc = &c ;
作为函数参数(传值,传址): void test(student c);void test(student* p);
作为返回值类型: student make(int id);

结构体变量定义和初始化

定义一个变量(不给初始值)

student a;

定义时初始化:用大括号将各个成员的初始值列出,按顺序列表。注意初始化时用大括号,末尾加分号结束。各字段的初始值要与该字段类型匹配。各初始值用逗号隔开,按顺序初始化。可以只初始化部分成员变量,也可以直接清0;结构体变量可以互相赋值,只支持 = ,不支持其他运算。

student a = {201823,2,"abc"};
student a = {201823};
student a = {0};
student as = 
{
	{201823,2,"abc"}.
	{201824,2,"abd"},
	{201825,2,"abf"}
}
student b = a;
结构体变量的访问

使用点号访问其成员:

student a;
a.id = 201867;
strcpy(a.name, "dfs");
指针

使用箭头 ->访问各成员变量,专门的这种方法,也可以用(*p).id,不常用。

student a = {201823,2,"abc"}
student* p = &a;
printf("id:%d,grade:%d.name:%s \n",p->id,p->grade,p->name);
匿名struct

只定义变量,不定义类型(只想定义一个变量),该struct没有命名,编译器内部会分配一个名字,我们不知道

struct 
{
	char aa[128];
	int dd;
}info;
结构体定义的几种方法

最前面的最常用正规,下面避免,匿名也避免

  • 直接把变量定义在后面。

    struct student
    {
    	int a;
    	char b[128];
    }stu1,stu2;
    
  • C++与C差异,定义时候相同,使用时候需要加关键字

    struct student
    {
    	int a;
    	char b[128];
    };
    struct student stu1;  //定义变量时候也要加关键字struct
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值