二维数组
- 输入
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
- 初始化
int a[][4]=={1,2,3,4,5,6,7,8,9,10,11,12};==int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[][4]={{1,2,3},{4,5},{6}};==int a[][4]={{1,2,3,0},{4,5,0,0},{6,0,0,0}}
不能这样定义:int a[3][]={1,2,3,4,5,6,7,8,9};==int a[3][]={{1,2,3},{4,5,6},{7,8,9}}或int a[3][]={{1,2,3,4},{5,6,7,8},{9,0,0,0}}或。。。。。
- 内存
按行存放,线性存储
- 向函数传递
不能省略第二维长度
二维函数寻址时找的是相对于首地址的偏移位置;定义a[2][3]
如计算a[i][j]的偏移位置为i*3+j;
# define length 10
int main()
{
function(score,n);
}//主函数
int function(int a[][length],int n)
{
}//自定义函数