结构体的一些小知识点

知识点:结构体

1. 结构体,其实就是一个自定义的集合,里面可以包含各种类型的数据

定义方法就是:

struct student

{

public int no;

public string name;

public int Cshap;

public int web;

public int datebase;

public int sum;

}

以上语句就是定义一个名字叫做student的结构体,里面包含一个整形的NO,代表学号;一个字符串类型的name,代表名字;一个整形的Cshap,代表Cshap的成绩;一个整形的web,代表网页的成绩;一个整形的datebase,代表数据库的成绩,一个整形的sum,代表总分。

如果定义在Main函数中,只能在Main函数中使用,一般看情况来定义在Main函数前面。

  1. 用法

新设一个名字为lch的student类型的结构体

student lch=new student();

为里面的每个元素赋值

{

lch.no=1;

lch.name = "李昌辉";

lch.Cshap=88;

lch.web=90;

lch.datebase=98;

lch.sum=lch.Cshap+lch.web+lch.datebase;

}

赋值完成之后进行打印

Console.WriteLine(("学号·{0}姓名·{1}Cshap·{2}web·{3}datebase·{4}总分·{5}"),lch.no,lch.name,lch.Cshap,lch.web,lch.datebase,lch.sum);

  1. 结构体类型元素包含结构体类型

在上一个student 后面再定义一个one

struct student

{

public int no;

public string name;

public int Cshap;

public int web;

public int datebase;

public int sum;

public one qk;//这里声明了一个one类型的qk,one则是我们定义的另一个结构体类型

}

struct one

{

public string nb;

public string ds;

public int nl;

}

这样,在用的时候也是一样的逻辑

static void Main(string[] args)

{

student lch=new student();

{

lch.no=1;

lch.name = "李昌辉";

lch.Cshap=88;

lch.web=90;

lch.datebase=98;

lch.sum=lch.Cshap+lch.web+lch.datebase;

lch.qk.ds = "山东";//这里是为其赋值

}//输出也是一样的道理

时间: 2024-10-20 04:34:51

结构体的一些小知识点的相关文章

15-07-10 结构体

结构体:由多种简单类型,组合成一种复杂的类型.使用这种复杂的类型来解决生活中的实际例子. 一.结构体定义:struct 结构体的名子{public 类型名 变量名;.....} 二.结构体的使用: 1.使用结构体来定义变量Student s1 = new Student();2.给结构体变量赋值.s1.Name = "";s1.NO = "";3.给结构体变量取值.s2.YuWen 三.复杂结构体.使用结构体类型的成员变量,来组成更大的结构体.1.先造个小的结构体2

C#学习笔记之结构体

1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有提到. 结构具有以下特点: 结构可以实现接口. 结构可以声明带参数的构造函数. 结构不能声明默认构造函数(没有参数的构造函数)或析构函数. 结构是值类型,而类是引用类型. 实例化结构体时可以不使用new运算符. 结构类型是不可抽象.隐式密封的,故不能使用abstract和sealed修饰符. 在结构

C语言中的结构体,结构体数组

C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存对齐的问题.也就是内存里面会有空档. 1.结构体的定义和赋值 结构体是可以直接初始化的,在定义的时候,就可以初始化,而且如果你的结构体中恰好有字符数组的话,这个时候初始化是不错的选择,原因很简单,字符数组只能定义的时候直接初始化 后来就不可以了,后来你就只能用strcpy函数来拷贝初始化了. str

C语言结构体(struct)常见使用方法

基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量. 结构体定义: 第一种:只有结构体定义 [cpp] view plain copy struct stuff{ char job[20]; int age; float height; }; 第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义 [cpp] view plain copy //直接带变量名Huqinwei st

程序设计基石与实践系列之失落的C语言结构体封装艺术

英文来源于 Eric S. Raymond-- The Lost Art of C Structure Packing 谁该阅读这篇文章 本文是关于削减C语言程序内存占用空间的一项技术--为了减小内存大小而手工重新封装C结构体声明.你需要C语言的基本知识来读懂本文. 如果你要为内存有限制的嵌入式系统.或者操作系统内核写代码,那么你需要懂这项技术.如果你在处理极大的应用程序数据集,以至于你的程序常常达到内存的界限时,这项技术是有帮助的.在任何你真的真的需要关注将高速缓存行未命中降到最低的应用程序里

Linux2.6 内核中结构体初始化(转载)

转自:http://hnniyan123.blog.chinaunix.net/uid-29917301-id-4989879.html 在Linux2.6版本的内核中,我们经常可以看到下面的结构体的定义和初始化.这在以前的C语言书中是极少见到的.下面的一个结构体来自到Linux内核中的一部分.在这个结构体中我们可以看到有普通的整型变量,也有函数的指针. struct net_proto_family { int family; int (*create)(struct net *net, st

strcut的用法--------C语言结构体(struct)常见使用方法(转载)

今天复习一下struct,顺便挖掘一下以前没注意的小细节: 基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量. 结构体定义: 第一种:只有结构体定义 [cpp] view plain copy struct stuff{ char job[20]; int age; float height; }; 第二种:附加该结构体类型的"结构体变量"的初始化的结构体定义 [cpp] 

(转)失落的C语言结构体封装艺术

目录1. 谁该阅读这篇文章 2. 我为什么写这篇文章 3.对齐要求 4.填充 5.结构体对齐及填充 6.结构体重排序 7.难以处理的标量的情况 8.可读性和缓存局部性 9.其他封装的技术 10.工具 11.证明及例外 12.版本履历 1. 谁该阅读这篇文章 本文是关于削减C语言程序内存占用空间的一项技术——为了减小内存大小而手工重新封装C结构体声明.你需要C语言的基本知识来读懂本文. 如果你要为内存有限制的嵌入式系统.或者操作系统内核写代码,那么你需要懂这项技术.如果你在处理极大的应用程序数据集

逆向基础之结构体对齐

遵循以下原则,数据成员对齐:结构体大小:结构体有某些成员大,最大对齐,对齐参数笔结构体的sizeof小,偏移以此为准. struct { char a; int b; char c; } a 1b,补3 b  4b c 1b,补三 struct { int a'; char b; char c; } a 4b; b c 补2 对齐原因为了在效率或者空间上面做优化. 原文地址:https://www.cnblogs.com/kk328/p/9800805.html