有符号整形:long int short sbyte
无:ulong uint ushort byte
浮点型:decimal(m) float(f) duble
特殊类型:bool string("") char('')
值和引用类型:
值类型:除了上面三个都是+结构体(相互赋值,他变我不变)
引用类型:string ,数组,类 (相互赋值时候,他变我也变)
为什么会有这种区别:
值和引用类型在内存中的存储区域不同
值:栈空间:系统分配,自动回收小而快
引用类型:存储在堆空间,手动申请和释放,大而慢
冒泡排序:将数组元素从大到小/从小到大顺序排列
int[] gender = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };//建立一个有10个元素的数组
for (int i = 0; i < gender.Length - 1; i++)//将gender数组降序排列,大循环9次(这个大循环意思是总共要有9次小循环比较,第一次把0挪到最后一位,第二次把1挪到倒数第二位,第三次把2挪到倒数第三位...................)
{
for (int b =0; b < gender.Length - 1 - i; ++b)//这个for是:把0挪到最后一位需要比几次?0和1比,0和2和3和4和5和6和7和8和9比;;;为什么int b=0而不是int b=gender[0]?(因为gender[0]是会变化的,当i=0的时候执行一次If之后,数组的第一和第二个数值已经交换了,所以此时的gender[0]不是0而是1)
{
if (gender[b] < gender[b + 1])
{
int max = gender[b + 1];
gender[b + 1] = gender[b];
gender[b] = max;
//why int b=0!=int b=gender[0]
}
}
}
for (int i = 0; i < gender.Length-1; i++)//将gender数组降序排列,大循环Leng-1次
{
Console.WriteLine(gender[i]);
}
Array.sort(数组名);//升序排列1,2,3,4,5(只对于数字可用,对于字符串无法排序)
Array.reverse(数组名);//对数组倒序排列 遍历
array.sort 之后array.reverse//降序:先升序再倒叙
for()//for循环之后不能出现;否则会检测不到for()中的内容