结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样。
一、定义的例子:
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();
|
请发表评论