首页 > 其他分享 >16-结构体

16-结构体

时间:2024-12-06 18:00:01浏览次数:4  
标签:lf struct 16 name pa 变量 结构

16-结构体

结构体可以让C语言创建新的类型

/* 创建一个学生类型 */
struct Stu
{
	char name[20];		//名字
	int age;			//年龄
	double score;		//成绩
};

/* 创建一个书的类型 */
struct Book
{
	char name[20];		//名字
	float price;		//价格
	char id[30];		//书号
};

一、结构体变量的创建

struct Stu s;		//结构体变量的创建(未初始化)

二、. 操作符

用来表示结构体成员变量

结构体成员表达形式结构体变量 . 结构体成员变量

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

/* 创建一个学生类型 */
struct Stu
{
	char name[20];		//名字
	int age;			//年龄
	double score;		//成绩
};

int main()
{
	struct Stu s = { "张三", 20, 85.5 };		//结构体变量的创建和初始化

	/*
	 * 结构体成员表达形式:结构体变量.结构体成员变量
	 */
	printf("名字:%s\t 年龄:%d\t 成绩:%lf\n", s.name, s.age, s.score);		//%lf 打印双精度浮点型的格式

	return 0;
}

image-20241206173203916

三、-> 操作符

指针指向对象中的变量

结构体成员表示形式:结构体指针 -> 成员变量名

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

/* 创建一个学生类型 */
struct Stu
{
	char name[20];		//名字
	int age;			//年龄
	double score;		//成绩
};

int main()
{
	struct Stu s = { "张三", 20, 85.5 };		//结构体变量的创建和初始化

	/*
	 * 结构体成员表达形式:结构体变量.结构体成员变量
	 */
	printf("方法1(.):名字:%s\t 年龄:%d\t 成绩:%lf\n\n", s.name, s.age, s.score);		//%lf 打印双精度浮点型的格式

	struct Stu * pa = &s;		//获取 s 变量的地址

	/*
	 * 结构体成员表达形式:指针变量的取值.结构体成员变量
	 */
	printf("方法2(.):名字:%s\t 年龄:%d\t 成绩:%lf\n\n", (*pa).name, (*pa).age, (*pa).score);		//%lf 打印双精度浮点型的格式

	/*
	 * 结构体成员表达形式:结构体指针 -> 成员变量名
	 */
	printf("方法3(->):名字:%s\t 年龄:%d\t 成绩:%lf\n", pa->name, pa->age, pa->score);		//%lf 打印双精度浮点型的格式

	return 0;
}

image-20241206174546927

标签:lf,struct,16,name,pa,变量,结构
From: https://www.cnblogs.com/AK47YHAO/p/18591227

相关文章

  • 洛谷题单指南-线段树-P1637 三元上升子序列
    原题链接:https://www.luogu.com.cn/problem/P1637题意解读:统计序列a[1]~a[n]中三元上升子序列的个数,三元上升子序列是指对于1<=i<j<k<=n有a[i]<a[j]<a[k],(a[i],a[j],a[k])成为一组上升子序列。解题思路:1、先思考一下暴力,通过三重循环枚举i,j,k找到所有i<j<k时符合a[i]<a[j]<a[k]......
  • 洛谷 P1651 塔(DP)
    题目传送门https://www.luogu.com.cn/problem/P1651解题思路设  表示前  个积木,两塔高度差为 (第一个比第二个高多少),的最大高度。易得:首先,不选当前的积木:其次,选当前积木,将它拼到第一个塔上:最后,选当前积木,将它拼到第二个塔上:由于,第二维可能为负数,所以,我们可以以 (数......
  • 大模型--数据类型FP16 BF16--29
    1.参考https://blog.csdn.net/voiiid/article/details/114825246https://blog.csdn.net/shizheng_Li/article/details/1441409122.半精度浮点fp16这两种数据类型编程是经常遇见双精度double,64位单精度float,32位FP16(Half-precisionfloating-pointformat)它提供更高的......
  • CSES-1621 Distinct Numbers
    题目传送门https://vjudge.net/problem/CSES-1621#author=GPT_zh题目大意解题思路就是一个去重,可以离散化,也可以开map。代码#include<bits/stdc++.h>usingnamespacestd;intn,x,ans;map<int,int>mp;intmain(){ ios::sync_with_stdio(0); cin.tie(0); cou......
  • 数据结构-八大排序
    插入排序时间复杂度为\(O(n^2)\)//插入排序(下标从1开始存放元素)(王道数据结构)voidInsertSort(inta[],intn){ inti,j; for(i=2;i<=n;i++){ if(a[i]<a[i-1]){ a[0]=a[i];//数组首位位缓存区,也就是哨兵 for(j=i-1;a[0]<a[j];j......
  • RFC 3161 是由 IETF(Internet Engineering Task Force)发布的一项标准,定义了数字时间戳
    RFC3161标准:时间戳协议概述RFC3161是由IETF(InternetEngineeringTaskForce)发布的一项标准,定义了数字时间戳协议(DigitalTimestampingProtocol)。其主要目的是为数字签名提供独立的时间戳服务,确保签名在特定时间内有效,即使签名的证书过期或撤销。该协议的核心功能是为文件......
  • jvm内存结构详解
    JVM内存结构是Java程序运行的核心,它管理着程序运行时所需的内存空间,确保内存分配、回收以及线程之间的安全和高效通信。以下是JVM内存结构的详细解析:1. 程序计数器(ProgramCounterRegister):• 每个线程都有自己的程序计数器,用于记录当前线程正在执行的字节码指令的地址。......
  • C:结构体、联合体
    结构体结构体类型的存储区里包含多个子存储区,每个子存储区可以用来记录对应的信息子存储区(成员变量)可以是不同的数据类型,也可以是结构体类型的结构体声明语句用来创建结构体类型,需要使用struct关键字结构体类型名称由关键字struct和结构体名称一起构成结构体成员变量声......
  • 数据结构——图(遍历,最小生成树,最短路径)
    目录一.图的基本概念二.图的存储结构1.邻接矩阵2.邻接表三.图的遍历1.图的广度优先遍历2.图的深度优先遍历四.最小生成树1.Kruskal算法2.Prim算法五.最短路径1.单源最短路径--Dijkstra算法2.单源最短路径--Bellman-Ford算法3.多源最短路径--Floyd-Warshall算法......
  • P5503 [JSOI2016] 灯塔
    P5503[JSOI2016]灯塔不难发现\(\sqrt{|i-j|}\)只有\(\sqrt{n}\)种取值,对于每一个取值我们只需要满足在该取值下\(h\)的最大值满足$$h_j\leh_i+p-\sqrt{|i-j|}$$就好了。本来本蒟蒻是想写一个st表去暴力维护的,可是大佬和我说这题的决策具有单调性,然后我的st表就这样......