结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样。

一、定义的例子:

struct student

{

public int nianling;

public int fenshu;

public string name;

public string sex;

public int sum;

}

以上的语句就是定义一个名称为student的结构体,其中包含int类型的年龄、分数、总和,和string类型的姓名、性别。

二、用法:

在main主函数外面定义了一个名称为student的结构体,以便于main函数之中使用。

student st = new student();//这句话是在main函数之中定义了一个名为st的student类型的结构体。

下面开始为里面的每个元素赋值:(结构体名+点+结构体里面的变量名称=值)

main函数下

{

st.nianling=22;

st.fenshu=80;

st.name="小李";

}

赋值完成之后可以打印出被赋值的项。

三、结构体类型里面包含结构体类型:

可以在此前的student的结构体中在定义一个结构体

public shuxing sx;//代表一个shuxing结构体变量组
}
public struct shuxing
{
public double tizhong;
public double shengao;
public int nianling;
public string hunfou;
}

这样就可以在用的时候省下再次初始化结构体。

//struct jiegouti
//{
// public string name;
// public string kecheng;
// public Fen fenshu;
//}
//struct Fen
//{
// public double yufen;
// public double shufen;
// public double yingfen;
//}

//等号,在枚举类型中的意思
//指向某个索引号
enum meiju :int
{
one=1,
two=0,
three,
//若等于之前出现的一个常量,那么会将这个常量直接拿过来
four
}

struct student//创建一个学生的结构体
{
public int code;//学号
public string name;//姓名
public double score;//分数
}

static void Main(string[] args)
{
ArrayList al = new ArrayList();//初始化集合
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
student st = new student();//初始化结构体
Console.Write("请输入第{0}个学生的学号:",i+1);
st.code = int.Parse(Console.ReadLine());
Console.Write("请输入他/她的姓名:");
st.name = Console.ReadLine();
Console.Write("请输入他/她的分数:");
st.score = double.Parse( Console.ReadLine());
al.Add(st);//将st这个结构体对象添加进al集合里面
}

Console.WriteLine("所有人员信息输入完毕!请按回车键查看!");
Console.ReadLine();

//Console.WriteLine(al[0]);
for (int i = 0; i < n; i++)
{
student st = (student)al[i];
Console.WriteLine("第{0}个学生的学号是{1},姓名是{2},成绩是{3}", i + 1, st.code, st.name, st.score);
}

Console.ReadLine();

// Console.WriteLine((int)meiju.one);
// Console.WriteLine((int)meiju.two);
// Console.WriteLine((int)meiju.three);
// Console.WriteLine((int)meiju.four);
// Console.ReadLine();

////结构体初始化
// jiegouti jgt = new jiegouti();

// jgt.name = "张三";
// jgt.kecheng = "语文";
// //jgt.fenshu = 99;
// jgt.fenshu.yufen=55;
// jgt.fenshu.shufen = 88;
// jgt.fenshu.yingfen = 99;

//jiegouti jgt2 = new jiegouti();

最新文章

  1. 自己动手写计算器v1.0
  2. 【JUC】JDK1.8源码分析之ArrayBlockingQueue(三)
  3. 在linux中查询硬件相关信息
  4. Java并发编程学习笔记(三)——对象的组合
  5. SVN客户端以及使用 for windows
  6. Loadrunner连接Mysql数据库
  7. winform学习日志(十九)----------真正三层架构之登录
  8. 如何删除已上线的IAP项
  9. Eclipse 卸载插件
  10. 第十一篇:web之Django之Form组件
  11. 注解 @RequestMapping
  12. UVa 10562 Undraw the Trees
  13. 此三层非彼三层——MVC&amp;amp;UBD
  14. 如何通过jmeter使用beanshell进行关联
  15. Python进阶_mysql(1)
  16. TCP的流量控制和拥塞处理
  17. Tampermonkey还你一个干净整洁的上网体验
  18. Robot Framework--Selenium2Library库3
  19. SQL Server 2000使用链接服务器
  20. PacBio下机数据如何看?

热门文章

  1. http转https
  2. 联想M7400打印机加粉墨了还是显示没有粉墨
  3. Linux MariaDB 遗忘密码后重置密码
  4. ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新
  5. 009 NAT
  6. FTP指令说明
  7. HDU 5265 pog loves szh II (二分查找)
  8. FineUI之使用SQL脚本从数据库表中生成对应的输入控件
  9. ionic/cordova 真机调试
  10. JavaScript基础 -- 焦点图轮播(转载)