88titiname88动画
行和列的概念是一样的,不同的是处理方式(存储方式)。
福坦
列优先,C,C++行优先。
Fortran:填充一列中的每一行,然后在另一列中填充下一列中的每一行。
c:填写一行的每一列,然后换行。
填写下一个
线条
的每一列
Fortran:
字符数组
Charatername (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)。。。姓名(12,1)
第二列:name (1,2) name (2,2) name (3,2) name (4,2) name (I,1)。。。姓名(12,2)
。。。
j列:name (1,j) name (2,j) name (3,j) name (4,j) name (I,j)。。。姓名(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行名称[0] [0],名称[0] [1]名称[0] [2]。。。,name [0][j-1].。。,名称[0][87]
在第2行,name [0] [0],name [0] [1] name [0] [2]。。。,name [0][j-1].。。,名称[0][87]
。。。
第I行中的名称[I-1] [0],名称[I-1] [1],名称[I-1] [2]。。。,名称[i-1][j-1].。。,名称[i-1][87]
。。。
第12行名称[11] [0],名称[0] [1],名称[0] [2]。。。,name[11][j-1].。。,名称[11][87]
无论是Fortran还是C、C++,二维数组都是前有行后有列。
只是在存储时,Fortran数据的每一列都是连续存储的,同一列中连续的两行是相邻的两个数据。
C,C++每行都是连续存储的;同一行中连续的两列是相邻的数据。
另外,有人说二维数组没有行列的概念,这大概是从哲学上来说的。不要相信。
数组的概念来源于数学,数组与数学中的向量、矩阵等概念有关。
向量->一维数组
矩阵->二维数组
因为二维数组对应的是数学矩阵,所以必然有行列的概念。
行列的概念和二维数组如何存储关系不大,所以不管是fortran还是C,C++都是第一行第二列。
PS:
Fortran存储顺序是列优先,C,C++行优先,这是不同人做出的不同选择。像数据存储的大端和小端,没有标准,所以采用两种不同的方法。而且都很受欢迎。
所以我们比较尴尬。