编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

C语言结构体例子学习(c语言结构体简单例子)

gowuye 2024-04-25 04:40 11 浏览 0 评论

一:了解C语言结构体

C语言中的结构体(struct)是一种用户自定义的数据类型,它允许您将多个不同类型的数据组合成一个单独的类型。

结构体——用于创造新结构使用。

结构体可以包含不同类型的字段(成员变量),例如整数、浮点数、字符、字符串等。

下面是一个简单的结构体示例,它包含两个整数和一个浮点数

struct Student

{

int id;

char name[50];

float score;

};

上面的代码定义了一个名为Student的结构体,它包含三个成员变量:id(一个整数),name(一个字符数组),和score(一个浮点数)。

其中包含三个成员变量:id、name和score。您可以使用结构体变量来存储和访问这些成员变量。

例如,您可以创建一个Student类型的变量,并为其成员变量赋值:

struct Student stu1;

stu1.id = 123;

strcpy(stu1.name, "John Doe");

stu1.score = 90.5;

您还可以使用指针来访问结构体变量的成员变量。例如,下面的代码演示了如何使用指向Student类型的指针来访问其成员变量:

struct Student *p = &stu1;

printf("ID: %d\n", p->id);

printf("Name: %s\n", p->name);

printf("Score: %.2f\n", p->score);

这里,我们使用箭头运算符(->)来访问结构体指针的成员变量。

struct book//书的类型

{

char name [20];//字符型数据,20是这个字符串限定的大小。

}

结构体用来表达复杂对象。

利用结构体类型,创建一个该类型的结构体变量。

通过使用结构体,我们可以方便地管理和操作多个相关的数据,提高代码的可读性和灵活性。

同时,我们还可以在结构体中定义函数指针,实现面向对象的特性。结构体是C语言中一个重要的概念,在学习和使用C语言中起到了重要的作用。

利用a打印名字和年龄



结构体变量名是所有成员的集合,需要其地址的话要用&结构体名。

声明时,成员以分号结尾,赋值时则以逗号隔开。

二:学习C语言结构体

在C语言中,我们可以使用数组来存储同类型的多个数据。数组是一种用于存储一系列同类型元素的数据结构,这些元素在内存中是连续排列的。

我们可以定义一个数组来存储一定数量的同类型数据,并通过索引来访问和操作这些数据。

#include <stdio.h>

结构体定义部分:

这段代码是用C语言编写的,用于定义一个名为student的结构体,并创建一个stu的实例来存储一个学生的信息。

然后,程序通过printf和scanf函数从用户那里获取输入,并将输入的信息存储到stu的各个字段中。最后,程序将存储的信息打印出来。

struct student

{

char number[10];

char name[10];

float chinese;

};

主函数部分:

这部分定义了一个名为student的结构体,该结构体包含三个字段:一个名为number的字符数组,一个名为name的字符数组,和一个名为chinese的浮点数。

int main()

{

struct student stu;

printf("number: ");

scanf("%s", stu.number);

printf("name: ");

scanf("%s", stu.name);

printf("chinese: ");

scanf("%f", &stu.chinese);

printf("Number: %s\n", stu.number);

printf("Name: %s\n", stu.name);

printf("Chinese: %.2f\n", stu.chinese);

return 0;

}


分析:

这部分首先定义了一个名为stu的student结构体实例。然后,它使用printf函数提示用户输入学生的信息,并使用scanf函数读取用户的输入。最后,它使用printf函数打印出存储在stu中的学生信息。

在scanf_s("%f", &stu.chinese);中,&符号用于获取stu.chinese的内存地址。scanf_s函数需要一个指针来存储输入的值,所以它需要&stu.chinese,即stu.chinese的地址。

这是由于在C语言中,变量是存储在内存中的。当你想要改变一个变量的值时,你实际上是更改了存储在那个特定内存地址中的值。

当你使用&操作符时,你得到的是这个变量的内存地址,也就是指向这个变量的指针。

对于scanf_s函数来说,它需要一个指向float类型的指针,因为%f格式说明符告诉scanf_s函数它应该读取一个浮点数,并把那个浮点数存储在指向float类型的指针所指向的内存地址中。

因此,&stu.chinese提供了stu.chinese变量的内存地址,这样scanf_s就可以把用户输入的浮点数存储在这个内存地址中了。

前面是输入字符串,数组名就是首元素地址,所以不用加&。后面输入float型数据要取地址才能输入。

struct student stu;

struct——结构体

student——结构体名

stu——结构体变量

int型——%d

char型——%s

float型——%f

三:结构体理解

在C语言中,可以使用结构体来表示日期年月日。比如:

#include <stdio.h>

struct Date {

int year;

int month;

int day;

};

int main() {

struct Date date;

printf("Enter year: ");

scanf("%d", &date.year);

printf("Enter month: ");

scanf("%d", &date.month);

printf("Enter day: ");

scanf("%d", &date.day);

printf("Date: %d-%02d-%02d\n", date.year, date.month, date.day);

return 0;

}

在这个示例中,定义了一个名为Date的结构体,包含三个整型成员变量year、month和day,分别表示年、月和日。

在主函数中,定义了一个Date类型的变量date,并使用scanf函数从用户输入中读取年月日,存储到date变量中的相应成员变量中。

最后,使用printf函数输出结果。需要注意的是,在输出时可以使用%02d格式说明符来保证月份和日期占两位数,并在不足两位数时自动补齐前导零。


#科技##C语言#

相关推荐

Nginx 响应提速10倍,你需要知道的缓存性能优化——FastCGI调优
Nginx 响应提速10倍,你需要知道的缓存性能优化——FastCGI调优

Nginx缓存优化是帮助大家提升网站性能的重要操作之一,proxy_cache主要用于反向代理时,对后端内容源服务器进行缓存;fastcgi_cache主要用于...

2024-05-20 14:44 gowuye

王者荣耀天魔缭乱和逐梦之音返场活动地址 3月22日开启返场活动
王者荣耀天魔缭乱和逐梦之音返场活动地址 3月22日开启返场活动

王者荣耀官方终于确定了天魔缭乱和逐梦之音的返场活动,这让不少小伙伴乐开了花,返场活动将会在3月22日开启,下面就带来王者荣耀天魔缭乱和逐梦之音返场活动地址!王者...

2024-05-20 14:44 gowuye

常见的嵌入式web服务器有哪些?

嵌入式WEB服务器常见的有:Lighttpd,Shttpd,Thttpd,Boa,Mini_httpd,Appweb,Goahead。Lighttpd地址:http://www.light...

简述几款常见的嵌入式web服务器
简述几款常见的嵌入式web服务器

嵌入式web服务器,是web服务器当中的一种,是基于嵌入式系统而实现的web服务器。指的是在嵌入式系统(通俗点就是单片机系统)上实现的一个web服务器,可以通过...

2024-05-20 14:44 gowuye

教你如何利用fastcgi_cache缓存加速WordPress

在使用nginx缓存之前,必须在nginx里面加载专门的模块,这个模块叫做ngx_cache_purge。添加ngx_cache_purge模块下载ngx_cache_purge模块ngx_cache...

扫描WordPress漏洞

检测已知漏洞WPScan是一款广泛使用的WordPress安全扫描工具,它的一项重要功能是检测已知漏洞。在这篇文章中,我们将深入探讨WPScan如何检测已知漏洞,并结合实际示例,帮助读者更好地理解和应...

消灭 Bug!推荐几个给力的开源 Bug 跟踪工具
消灭 Bug!推荐几个给力的开源 Bug 跟踪工具

在这个充满bug的世界里,最遥远的距离不是生与死,而是你亲手制造的bug就在你眼前,你却怎么都找不到它。因此本文准备了7款优秀的开源bug跟踪系...

2024-05-20 14:43 gowuye

生物信息分析入门全攻略

生物信息学是生命科学研究的重大前沿领域,未来将占据生命科学研究的半壁江山。已经有越来越多的小伙伴投入到生物信息的学习中,但是入门难、深入慢、摸不到方向等都成为持续学习的拦路虎。本文根据生物信息技术大牛...

elkb实践经验,再赠送一套复杂的配置文件
elkb实践经验,再赠送一套复杂的配置文件

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。宝剑锋从磨砺出,梅花香自苦寒来。诗人白居易,三月下江南,看到沿路开放的桃花,心潮澎湃...

2024-05-20 14:43 gowuye

超详细从0到1 搭建ELK监控
超详细从0到1 搭建ELK监控

监控分类?Metrics用于记录可聚合的数据。例如,1、队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP请求个数可被定义为一个计数器,...

2024-05-20 14:42 gowuye

嵌入式开发 之Web配置页面开发
嵌入式开发 之Web配置页面开发

1.PHP是最好的语言??开发动态页面首选的语言是PHP,村村不能在这里忽悠人,如果你的硬件性能允许切略懂PHP,看到这里就可以退出了。本文面向的受众是Linu...

2024-05-20 14:42 gowuye

Python开发一个网站目录扫描工具用来检测网站是否有漏洞?
Python开发一个网站目录扫描工具用来检测网站是否有漏洞?

开发一个网站目录扫描工具是用来检测网站是否有非法目录请求的一个常见需求之一,我们要通过这个扫描工具来找到通过某个域名可以访问到的网站路径,可能对于有些系统来讲,...

2024-05-20 14:42 gowuye

创建一个类似Youtube的Id——使用PHP/Python/JS/Java/SQL

id通常都是用数字,不巧的是只有10个数字来使用,所以如果你有很多的记录,id往往变得非常冗长。当然对于计算机来说无所谓,但我们更希望id尽可能短。所以我们如何能使id变短?我们可以利用字母让它们附加...

快速云:有助于移动应用安全开发的五条妙计
快速云:有助于移动应用安全开发的五条妙计

许多企业不断地向其开发团队提供培训。但是某些漏洞,如早在十多年前就发现的SQL注入,如今仍广泛存在于各种应用中。因而,安全培训永不过时。在开发移动应用时,开发者...

2024-05-20 14:41 gowuye

洛杉矶国际电影节最佳动画短片奖影片《G’DAY》正式全网上映
洛杉矶国际电影节最佳动画短片奖影片《G’DAY》正式全网上映

7月2日,由M&CSaatchi创作,由深受好评的澳大利亚导演迈克尔·格雷西执导的动画短片《G’day》,正式在全网上映。该影片因其出色的创意赢得了洛...

2024-05-20 14:41 gowuye

取消回复欢迎 发表评论: