C语言中结构体的使用方法

发布时间:2021-09-02 23:04:15 作者:chen
来源:亿速云 阅读:191

这篇文章主要讲解了“C语言中结构体的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中结构体的使用方法”吧!

目录

C 语言结构体使用

1. 结构体的声明和定义

1.1 介绍

如我们可以将一个学生的一些属性放在一起

struct stu//定义一个结构体类型,就如int、char,struct stu是我们定义的结构体类型
{
    //成员变量
    char name[20];//名字
    int age;//岁数
    char id[20];//学号
};
int main()
{
    struct stu a;//定义一个struct stu类型的变量a,而对象a中就包含了名字,岁数,学号的属性
}
1.2定义的几种类型

类型1:

struct stu
{
    char name[20];
    int age;
};
int main()
{
    struct stu a;//定义局部变量a
}

类型2:

struct stu
{
    char name[20];
    int age;
}s1,s2;//定义全局变量s1,s2

2. 结构体初始化

代码如下:

struct book
{
   float height;
   char name[20];
}b;
struct stu
{
    char name[20];
    int age;
    char id[20];
    struct book b;
};
int main()
{
    //初始化时,其实是和数组初始化一样,用大括号,里面放上初始化的值。若结构体里面包含结构体,则大括号里面 //在放一个大括号,里面放内部结构体初始化的值
    
    struct stu a={"bobo",18,"2021520",{15.8,"free"}};
}

3. 结构体成员访问

3.1 成员介绍

struct book
{
   float height;
   char name[20];
}b;
struct stu
{
    char name[20];
    int age;
    char id[20];
    struct book b;
};
int main()
{
    struct stu a={"bobo",18,"2021520",{15.8,"free"}};
    //法一
    printf("%s\n",a.name);
    printf("%d\n",a.age);
    printf("%.1f\n",a.b.height);//若访问结构体中的结构体中的一个成员,先访问到内部的结构体,再访问内部结构体中的成员
    
    //法二
    struct stu* pa=&a;
    printf("%s\n",pa->name);
    printf("%d\n",pa->age);
    printf("%.1f\n",pa->b.height);
    
    //法三
    printf("%s\n",(*pa).name);
    printf("%d\n",(*pa).age);
    printf("%.1f\n",(*pa).b.height);
}

4. 结构体传参

注意:

结构体传参的时候,要传结构体的地址更好

代码如下:

struct book
{
   float height;
   char name[20];
}b;
struct stu
{
    char name[20];
    int age;
    char id[20];
    struct book b;
};
void print1(struct stu p)
{
    printf("%s %d %s %.1f %s",p.name,p.age,p.id,p.b.height,p.b.name);
}
void print2(struct stu* pa)
{
    printf("%s %d %s %.1f %s",pa->name,pa->age,pa->id,pa->b.height,pa->b.name);
}
int main()
{
    struct stu a={"bobo",18,"2021520",{15.8,"free"}};
    
    //写一个函数打印a的内容
    
    print1(a);//结果为:bobo 18 2021520 15.8 free(正常打印)
    
    //再写一个函数,通过传a的地址打印a的内容
    
    print2(&a);//结果为:bobo 18 2021520 15.8 free(正常打印)
    
    return 0;
}

那么传值和传址有什么不同,哪个更好呢?(首选传址

那么什么是函数调用的参数压栈呢?

栈:一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表

特点:先进的后出,后进的先出。(先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来))

压栈:给栈里存数据

C语言中结构体的使用方法

感谢各位的阅读,以上就是“C语言中结构体的使用方法”的内容了,经过本文的学习后,相信大家对C语言中结构体的使用方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. C语言的结构体大小
  2. C语言之结构体以及结构体对齐访问

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:C++中文件的随机读写方法及其作用介绍

下一篇:MySQL中的隐藏列的具体查看方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》