fortran语言二维数组定义时,第一个数字是行还是列啊~~例如name[2,88],数字2代表的是行还是列~

 我来答
_whales
推荐于2018-08-02 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:492万
展开全部
C,C++,Fortan

行和列的概念是一样的,不一样的是处理方式(存储方式)

Fortan
列优先,C,C++行优先

Fortran:填满一列的每一行,再换列填下一列的每一行
C:填满一行的每一列,在换行
填下一

的每一列

Fortran:

字符数组的话
charater name(1 :12,1:88)表示12行,88列的二维数组
存储时 第1行 第2行 第i行
第1列 : name(1,1) name(2,1) name(3,1) name(4,1) name(i,1) 。。。 name(12,1)
第2列 : name(1,2) name(2,2) name(3,2) name(4,2) name(i,1) 。。。 name(12,2)
。。。
第j列 : name(1,j) name(2,j) name(3,j) name(4,j) name(i,j) 。。。 name(12,j)
。。。
第88列 : name(1,88) name(2,88) name(3,88) name(4,88) name(i,88) name(12,88)

C,C++:
char name[12][88];
表示12行,88列的二维数组

存储时 第1列 第2列 。。。 第j列 。。。 第88 列
第1行 name [0][0] , name [0][1] name [0][2]。。。, name [0][j-1] 。。。 ,name [0][87]
第2行 name [0][0] , name [0][1] name [0][2]。。。,name [0][j-1] 。。。 ,name [0][87]
。。。
第i行 name [i-1][0] , name [i-1][1], name [i-1][2]。。。,name [i-1][j-1] 。。。,name [i-1][87]
。。。
第12行 name [11][0] , name [0][1], name [0][2] 。。。, name [11][j-1]。。。, name [11][87]
无论Fortran还是C,C++的,二维数组前面一个是行,后面一个是列。
只是存储时,Fortran 每一列数据是连续存储的,同一列连续两行是两个相邻的数据。
C,C++每一行是连续存储的;同行连续两列是相邻的数据。
另外,有人说二维数组没有行列的概念,这大概是从哲学上说的,别相信。
数组的概念是从数学来的,数组和数学上的向量,矩阵的概念是相关的。
向量--->一维数组
矩阵--->二维数组
由于二维数组对应数学上的矩阵,所以肯定是有行列的概念的。
行列的概念和如何存储二维数组关系不大,所以,不论是fortran还是C,C++ 第一个为行,第二个为列。
PS:
Fortran 存储顺序为列优先,C,C++行优先,这是不同的人作出的不同选择,和数据存储的大端,小端一样,没有标准,所以采取了两种不同的方法。并且都流行了下来。
于是我们就比较为难了。
天河流纹石
2013-03-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6685万
展开全部
1.二维数组没有,行,列的概念。你说哪个是行,他就是行。你说哪个是列,他就是列。
行,列,只有写成人类的习惯,才有意义。计算机里存储,是不区分行列存储的,永远是线形的存储。

2.在内存中,Fortran数组存放的顺序是:
a(1,1) , a(2,1),a(3,1)....a(m,1)

a(1,2),a(2,2)....a(m,2)
....
a(1,n),a(2,n)....a(m,n)
实际上,上面的数据应该写成一行。因为内存里没有行,列的概念。

3.Fortran数组引用是小括号,不是中括号,因此 a[2,88] 的写法是不对的,这是 C 的写法。
追问
高手可以加qq吗 我有问题想请教 谢谢~ 然后fortran定义整型数组后,赋值的字符串,不出错为什么啊
追答
强制转换了,所以不会出错。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式