结构体

1、概念:

结构体是写在main函数外的数据结构,由不同类型的数据组合成一个整体,这些组合在一个整体中的数据是互相联系的

2、声明方式:

struct 结构体名

{

成员变量(由类型名+成员名组成)

}

例:

public struct student//public是修饰符,可以不加,作用范围为整个命名空间
{
public int Code;//定义变量,每一个变量叫做结构体的属性
public string Name;
public string Sex;
public int Age;
public decimal Height;
}

3、调用方法:

(1)初始化结构体(new一个)

(2)给结构体中的变量赋值

如:

//继续使用上面结构体的定义
student ss = new student();
ss.Code = ;
ss.Name = "zhangsan";
ss.Sex = "nan";
ss.Height =;

4、用结构体对代码进行优化处理

----冒泡排序----

题目:输入学生个数,挨个输入姓名、身高、年龄,求平均年龄,然后按身高升序排出

思路:建立一个含有姓名、身高、年龄参数的结构体,再建立一个集合,通过for循环将每次初始化后的结构体类型带着三种数据放入集合中。

答案:

Console.WriteLine("输入学生个数:");
int n = int.Parse(Console.ReadLine());
ArrayList ar = new ArrayList();//建立集合填充数据 int sum =;
for (int i = ; i < n; i++)
{
student ss = new student();
Console.Write("请输入姓名:");
ss.Name =Console.ReadLine();
Console.Write("请输入年龄:");
ss.Age = int.Parse(Console.ReadLine());
Console.Write("请输入身高:");
ss.Height = int.Parse(Console.ReadLine().Trim());
ar.Add(ss);//在集合中增加一个student类型的数据
sum = sum+ss.Age;//算总分
}
for (int i = ; i < n; i++)
{
for (int j = i; j < n; j++)
{
//建立中间值,将ar[i]、ar[j]强制转化为student的类型,然后判断身高
student s1 = (student)ar[i];
student s2 = (student)ar[j];
if(s1.Height<s2.Height)
{
ar[i] = s2;
ar[j] = s1;
}
}
}
foreach (student a in ar)
{
Console.Write("姓名:" + a.Name);
Console.Write("身高:" + a.Height);
Console.Write("年龄:" + a.Age);
Console.Write("\n");
}

12、C#基础整理(结构体)的更多相关文章

  1. Go语言基础之结构体

    Go语言基础之结构体 Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在G ...

  2. GO学习-(13) Go语言基础之结构体

    Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. ...

  3. Go基础之--结构体和方法

    结构体的定义 结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型.每个变量都叫做结构体的成员. 其实简单理解,Go语言的结构体struct和其他语言的类class有相等的地位,但是GO语 ...

  4. C语言基础(19)-结构体,联合体,枚举和typedef

    一.结构体 1.1 结构体struct定义及初始化 #include <stdio.h> // 这个头文件在系统目录下 #include <stdlib.h> // 使用了sy ...

  5. C语言基础 (11) 结构体 ,共用体 枚举 typedef

    1 课堂回顾 作用域与生命周期 2 static 局部变量 2 打字游戏 3 内存分区代码分析 4 结构体基本操作 (复合类型[自定义类型 #include <stdio.h> #incl ...

  6. ndk学习之C语言基础复习----结构体、共用体与C++开端

    自己实现sprintf功能: 关于C中的系统函数sprintf在上次[https://www.cnblogs.com/webor2006/p/7545627.html]学习中已经用到过了,这里再来回顾 ...

  7. 嵌入式-C语言基础:结构体

    数组只能存放一种类型的数据,而结构体内可以存放不同类型的数据. #include<stdio.h> #include <string.h> struct Student { c ...

  8. C#基础--struct(结构体)

    结构体和类有点类似    我们定义一个类的时候    是class   类名   定义结构体的时候是 struct   结构体名 结构体的写法 struct Point { // public int ...

  9. Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数

    知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...

  10. go语言基础之结构体做函数参数 值传递和地址传递

    1.结构体做函数参数值传递 示例: package main //必须有个main包 import "fmt" //定义一个结构体类型 type Student struct { ...

随机推荐

  1. jQuery 2.0.3 源码分析 bind/live/delegate/on

    传统的时间处理: 给某一个元素绑定一个点击事件,传入一个回调句柄处理 element.addEventListener('click',doSomething,false); 这样的绑定如果页面上面有 ...

  2. inout

    在函数声明时就用inout代替var  这样以后可以在函数内部修改外面的值 类似于C语言的传入指针 func change (inout num:Int) { num = 10 } var a = 2 ...

  3. Java 集合系列 15 Map总结

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. 转 SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题

    SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题 SQL Union和SQL Union All用法 SQL UNION 操作符 UN ...

  5. Help Me Escape (ZOJ 3640)

    J - Help Me Escape Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:32768KB ...

  6. thinkjs——修改where默认条件为or

    写之前,得先反思一下:总以为大神同事的高冷是一种与大家格格不入的节奏,可是当自己遇到的问题难以解决的时候,大神同事一下子就让问题迎刃而解,于是,满眼的敬佩之感:一定努力当一个像大神同事一样的progr ...

  7. 牛场围栏(vijos 1054)

    题目大意: 给出N种木棍(每种木棍数量无限)的长度(<=3000),每根木棍可以把它切掉[1,M]的长度来得到新的木棍. 求最大的不能被组合出来的长度. 如果任何长度都能组合出来或者最大值没有上 ...

  8. Service相关--读书笔记

    2013-12-30 18:16:11 1. Service和Activty都是从Context里面派生出来的,因此都可以直接调用getResource(),getContentResolver()等 ...

  9. 有关嵌入式linux的注意点总结

    知识收集和个人学习过程遇到的问题. 仅供参考. 1.sudo apt-get update 一直无法更新 一,查看网络是否连接上 有几种网络连接方式.常用的两种有网桥网络(Bridged)和网络地址翻 ...

  10. Unity游戏数据用Json保存

    (一)关于路径 unity有几个关键的路径 (1).Application.dataPath 只读路径,就是工作目录的Assets路径 (2).Application.streamingAssetsP ...