关于C#里面的多为数组的问题
答案:3 悬赏:30
解决时间 2021-02-04 14:20
- 提问者网友:千城墨白
- 2021-02-04 00:29
private Class1[ ][ ] array = new Class1[2][2]; 我试了这么写是非法的。难道我非得 private Class1[ ][ ]array; array = new Class1[2]; for(i = 0;i<2;i++); { array[i] = new Class[2]; }不能直接分配为成2*2的?我试了直接分配有错误:错误 1 无效的秩说明符: 应为“,”或“]” C:\Documents and Settings\董剑峰\桌面\新建文件夹 (2)\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 50 50 WindowsFormsApplication1怎么回事?我要是想用矩阵还要这么麻烦?
最佳答案
- 二级知识专家网友:年轻没有失败
- 2021-02-04 01:12
房主你定义的是交错数组,一楼写的是多维数组。交错(非矩形)数组,即每一行包含的列数不同的数组。如:int[][] jaggedArray = new int[2][]; jaggedArray[0] = new int[4]; jaggedArray[1] = new int[3];如果想定义个数组并且分配数组的上线为2*2的话就应该这样:Class1[,] array = new Class1[1,1];因为在C#中数组的下限是为0的 所以应该写成 :1,1.一楼写的也可以有不过他浪费了内存空间。
全部回答
- 1楼网友:懂得ㄋ、沉默
- 2021-02-04 02:36
private Class1[,] array = new Class1[2,2];
- 2楼网友:桃花别处起长歌
- 2021-02-04 01:31
你写错了吧
我知道你要说的意思
严格的说 第一句也占内存 不过它占用的是储存实际数组地址所需的空间 固定为4个字节
只是没有使用new 所以没在堆中创建实际的数组 就没有实际的数组内存空间
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯