首页 > 其他分享 >【C语言】初识结构体

【C语言】初识结构体

时间:2023-05-23 16:06:31浏览次数:32  
标签:struct int age name Stu 初识 C语言 结构


一、结构体的声明


1.结构的基础知识

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。


2.结构的声明

struct tag
{
 member-list;
}variable-list;

【C语言】初识结构体_初始化

                例如描述一个学生:

typedef struct Stu
{
 char name[20];//名字
 int age;//年龄
 char sex[5];//性别
 char id[20];//学号
}Stu;

【C语言】初识结构体_操作符_02

typedef将struct Stu进行重命名为Stu,我们再引用结构体创建对象直接Stu即可


3.结构成员的类型

                结构的成员可以是标量、数组、指针,甚至是其他结构体。

二、结构体变量的定义和初始化


  有了结构体类型,那如何定义变量,其实很简单。

struct Point
{
	int x;
	int y;
}p1; //声明类型的同时定义变量p1
struct Point p2; //定义结构体变量p2
//初始化:定义变量的同时赋初值。
struct Point p3 = { x, y };
struct Stu        //类型声明
{
	char name[15];//名字
	int age;      //年龄
};
struct Stu s = { "zhangsan", 20 };//初始化
struct Node
{
	int data;
	struct Point p;
	struct Node* next;
}n1 = { 10, {4,5}, NULL }; //结构体嵌套初始化
struct Node n2 = { 20, {5, 6}, NULL };//结构体嵌套初始化

【C语言】初识结构体_操作符_03

三、结构体成员的访问

        结构体变量访问成员,结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。 例如:


【C语言】初识结构体_操作符_04

       

标签:struct,int,age,name,Stu,初识,C语言,结构
From: https://blog.51cto.com/u_16125611/6332930

相关文章

  • 【C语言】结构体进阶
     一、结构体1.结构体的声明              (1)结构的基础知识                结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。             (2)结构的声明structtag{member-list;}variable......
  • 5_22打卡_c语言贪吃蛇(失败)
    funtion.h#pragmaonce#include<stdio.h>#include<time.h>#include<stdlib.h>#include<Windows.h>#include<conio.h>#include<iostream>#defineWIDTH20#defineHEIGHT15//地图的宽和高#defineSPEED2000typedefenum{ WALL,......
  • list转换成树形结构
    importcn.hutool.core.collection.CollectionUtil;importcn.hutool.core.util.StrUtil;importcn.hutool.json.JSONUtil;importcom.alibaba.fastjson.JSON;importorg.springframework.stereotype.Component;importjava.lang.reflect.Field;importjava.util.Array......
  • 类加载和通过反射获取类的结构信息
    1. 基本说明  719反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。1.静态加载:编译时加载相关的类,如果没有写出该类,则报错,依赖性太强2.动态加载:运行时加载需要的类,如果运行时不用该类,即使不存在该类,也不报错,降低了依赖性代码在com.stulzl.class_load_.包中Clas......
  • UIView的层次结构--code
    [selflogViewTreeForMainWindow];//Recursivelytraveldowntheviewtree,increasingtheindentationlevelforchildren-(void)dumpView:(UIView*)aViewatIndent:(int)indentinto:(NSMutableString*)outstring{for(inti=0;i<indent;i++)[o......
  • LLvm 源码结构及测试基础
    LLvm源码结构及测试基础https://www.cnblogs.com/ainima/archive/2013/02/27/6331983.htmlhttps://www.cnblogs.com/ainima/archive/2013/02/27/6331985.htmlhttps://www.cnblogs.com/wujianming-110117/p/17128814.html......
  • 表类型没有结构,READ语法如何取数?
     READTABLELT_PERNR_P0267TRANSPORTINGNOFIELDSWITHKEYTABLE_LINE=LS_PERNR.IFSY-SUBRC<>0.ENDIF. ......
  • oracle_将一个数据库的某一张表复制到另一个数据库(表名与表结构结构相同,数据库不同)
    数据库:数据库A表名:student数据库A的库名:school_A数据库B表名:studentinsertintostudent--要把数据插入数据库B中的student表select*fromstudent@school_A--数据库A:school_A中的student表(注意1:school_A需要是登录状态注意2:输入@时,一般会有提示,也可根据......
  • C语言函数大全-- x 开头的函数(2)
    C语言函数大全本篇介绍C语言函数大全--x开头的函数1.xdr_char1.1函数说明函数声明函数功能bool_txdr_char(XDR*xdrs,char*cp);用于将一个char类型的数据编码为XDR流或从XDR流中解码出一个char类型的数据参数:xdrs:指向要编码或解码数据的XD......
  • 第4天 c语言与画面显示的练习
    用c语言实现内存写入只显示黑乎乎的窗口一点意义也没有,我们需要值写入到现存中,以此来让显示器显示一些图像,首先利用汇编语言来定义一个函数,函数名称为_write_mem8,函数接收两个四字节的变量esp+4获取第一个变量的地址,esp+8获取第二个变量的地址,因为每个传过来的变量大小都是四字节......