c#定义的二维数组 如何获取数组下标啊

c#定义的二维数组 如何获取数组下标啊,第1张

1 using System;

2 using SystemCollectionsGeneric;

3 using SystemLinq;

4 using SystemText;

5

6 namespace ConsoleApplication1

7 {

8 class Program

9 {

10 static void Main(string[] args)

11 {

12 // 定义一个二维数组 其实可以把二维数组看作一个表 例如

13 / 0 1 2 3 4 ------------列等于i 维

14 ----------------

15 0 | | | | | |

16 ----------------

17 1 | | | | | |

18 ----------------

19 2 | | | | | |

20 ----------------

21 3 | | | | | |

22 ↓ ----------------

23 ↓

24 ↓

25 行代表 j 维

26 /

27

28 int[,] array = { { 1, 2, 3 },

29 { 4, 5, 6 },

30 { 7, 8, 9 } }; // 这是一个三行三列的二维数组

31 // 现在我们来把这个二维数组输出在屏幕上 用两个for循环来实现, 一个控制行,一个控制列

32

33 for (int i = 0; i < 3; i++) // 因为只有三行, 而且数组下标是从0开始的,所以要小于三

34 {

35 for (int j = 0; j < 3; j++) //同理, 只有三列, 所以要小于三

36 {

37 ConsoleWrite(array[i,j] + "\t");

38 }

39 ConsoleWriteLine();

40 } /

41 打印结果为 1 2 3

42 4 5 6

43 7 8 9

44 /

45

46 // 接下来做一个实例 , 用二维数组打印一个矩阵出来

47 string[,] Chess = new string[11, 19]; //声明一个二维数组

48 for (int a = 0; a < 11; a++) // 控制行,

49 {

50 for (int b = 0; b < 19; b++) //控制列

51 {

52 if (b % 2 != 0)

53 Chess[a, b] = "—";

54 else

55 Chess[a, b] = "|";

56 ConsoleWrite(Chess[a, b]);

57 }

58 ConsoleWriteLine();

59 }

60

61 / 打印结果

62 |—|—|—|—|—|—|—|—|—|

63 |—|—|—|—|—|—|—|—|—|

64 |—|—|—|—|—|—|—|—|—|

65 |—|—|—|—|—|—|—|—|—|

66 |—|—|—|—|—|—|—|—|—|

67 |—|—|—|—|—|—|—|—|—|

68 |—|—|—|—|—|—|—|—|—|

69 |—|—|—|—|—|—|—|—|—|

70 |—|—|—|—|—|—|—|—|—|

71 |—|—|—|—|—|—|—|—|—|

72 |—|—|—|—|—|—|—|—|—|

73

74 /

75 }

76 }

77 }

c语言中,数组元素的下标下限为0。

数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

对于VB的数组,表示数组元素时应注意:下标必须为一段连续的整数,其最小值成为下界,其最大值成为上界,不加说明时下界值默认为1。

扩展资料:

数组声明上下界

声明数组时,在数组名之后跟一个用括号括起来的上界。

上界不得超过 Long数据类型的范围(-2,147,483,648 到 2,147,483,647)。

1、模块声明

Dim Counters (14) As Integer '15 个元素。

Dim Sums (20) As Double '21 个元素。

第一个声明建立了一个有 15 个元素的数组,其索引号从 0 到 14。

第二个声明建立了一个有 21 个元素的数组,其索引号从 0 到 20。缺省的下界为 0。

2、关键字 To 显式声明

Dim Counters (1 To 15) As Integer

Dim Sums (100 To 120) As String

在前述声明中,Counters 的索引值范围从 1 到 15,而 Sums 的索引值范围从 100 到 120。

参考资料来源:百度百科_数组

一步,打开eclipse开发工具,新建静态页面lastIndexOfhtml,如下图所示:

第二步,在<script></script>内编写代码,声明两个变量E1和E2,如下图所示:

第三步,预览该静态页面,打开浏览器控制台,查看打印结果,如下图所示:

第四步,再次修改代码,lastIndexOf方法内第一个参数设置为数组中没有的元素,如下图所示:

第五步,再次预览该静态页面,发现打印的结果为“-1”,说明没有查找到该元素,如下图所示:

第六步,再次修改代码,添加第二个参数,从倒数第二个开始查找,如下图所示:

C语言程序运行时,数组的存在形式是内存中的一块连续地址空间。而访问数组元素时,计算机会将下标做为空间首地址的偏移量来进行寻址,所以当然可以是任何整形数。

比如int array[10],array的地址是0x7FFFFF00,那么在访问array[3]时,计算机是这样计算的:

每个整形数大小为4个字节,所以用array的地址加上3乘以4,得到0x7FFFFF0C,那么从0x7FFFFF0C到0x7FFFFF0F这4个字节的值就是array[3]的值。

所以无论传入的下标是什么,理论上都可以计算得到一个地址,但是这个地址不一定是有效的。如果地址无效,就会发生段错误(segmentation fault),也即数组越界/地址访问越界。现在的编译器会认为只要下标是个整型变量,就是可以的,但是执行的时候 *** 作系统仍然会进行监测,否则会影响其他程序的运行。

比如说a = {1, 2, 4, 5, 7}, b = { 1, 2, 3, 4, 5, 6, 7, 8 },那么b[a[3]] = b[5]=6,这个是可以允许的。

一定要用模板吗?

对于结构体元素查找,可能会用到根据其中几个元素来比较,或者所有元素来比较

所以最好可以专门写函数来查找

比如

int find(struct stu array, int value)

{

int i;

for(i=0;i<length;i++)//这个length可以通过全局变量 也可以改成从参数传过来

if(array[i]m == value) break;

return i;

}

这个是查找m的

如果对于结构体查找的元素是固定的,比如值查找m,或者只有当所有元素值相等时才算找到

可以重载 *** 作符==

以上就是关于c#定义的二维数组 如何获取数组下标啊全部的内容,包括:c#定义的二维数组 如何获取数组下标啊、c语言中,数组元素的下标下限为、javascript中知道一个数组中的一个元素的值,如何获取数组下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9873359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存