说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

新手学习的示例程序,我看不懂,帮忙~

编辑:说三道四文库 发布时间:2018-07-18 11:53
HTML文档下载 WORD文档下载 PDF文档下载
000: // Arrays\arrays.cs
001: using System;
002: class DeclareArraysSample
003: {
004: public static void Main()
005: {
006: // Single-dimensional array
007: int[] numbers = new int[5];
008: 
009: // Multidimensional array
010: string[,] names = new string[5,4];
011: 
012: // Array-of-arrays (jagged array)
013: byte[][] scores = new byte[5][];
014: 
015: // Create the jagged array
016: for (int i = 0; i < scores.Length; i++)
017: {
018: scores[i] = new byte[i+3];
019: }
020: 
021: // Print length of each row
022: for (int i = 0; i < scores.Length; i++)
023: {
024: Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length);
025: }
026: }
027: }
它的输出是:
Length of row 0 is 3
Length of row 1 is 4
Length of row 2 is 5
Length of row 3 is 6
Length of row 4 is 7
   我想知道
016: for (int i = 0; i < scores.Length; i++)
017: {
018: scores[i] = new byte[i+3];
019: }
   这段是不是如果i<scores的长度就+1然后scores[i]被赋值
   new byte[i+3]这个是什么东西??是数组里的还是重新恢复
   i为0 ?
   这个scores默认的长度是多少?是5么?还是1?
   而
   for (int i = 0; i < scores.Length; i++)
023: {
024: Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length);
025: }
   这段的i不是0么,他+1后不就变成1了么?怎么输出后第一段是0?
   是不是我没有理解好数组的长度才出现这么多问题?
还有一个
024: Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length);
这段里的scores[i].Length
这个是什么的长度?
byte[]的长度
你的QQ没有开啊.我加你了.
scores.Length是第一维的长度。
scores[i].Length是第二维的长度。
C#中数组的应用(以int为例):
int[] arr1 = new int[4]; 声明可存储四个整数的数组.下标从0开始到3
int[,] arr2 = new int[4,5];声明4*5的二维数组;

int[][] arr3 = new int[5][];可以理解为声明含5个整型指针的数组;
arr3[2] = new int[40]; 这个和第一个是一样的道理.这里arr3[2] 相当于一个 int[] 型的变量.
arr3[3] = new int[9999];这个是可以的.从这里你就看出了 int[,] 和int[][]的区别了.
这样那个程序就不难看懂了.

补充,int可以是任何重载了[]的数据类型,如byte,string等.
这个维是个什么概念?
arr3[2]中的2指的是数组中的几维?还是一个数值?
维是指指针的级数,int[] a; a是一维的.int[][] a;则a是二维的.
arr3[2] 中的2是指第三个int[]型的变量.共有5个.下标 0 -> 4.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘