hyfm.net
当前位置:首页 >> C语言二维数组的初始化 >>

C语言二维数组的初始化

二维数组可以在定义的时候初始化,就像上面那样.如果已经定义了一个二维数组,就不能批量初始化,必须对二维数组每个元素hao[i][j]单独进行初始化.C语言里面不能对一行数据进行初始化的.对于一个二维数组,你可以用两层for循环,对每个元素初始化.

用for循环挨个赋值吧 for(i=0; i<4; i++){ a[0][i]=i+1; a[1][i]=i+5; a[2][i]=4; }

#include <stdio.h>#include <string.h> void main() { int a[10]={0}; //所有初始化为0 int b[5]={1,2,3,4,5}; //d[0]=1,d[1]=2,d[2]=3 int c[10][20]={0}; //所有初始化为0 int d[3][2]={{1,2},{3,4},{5,6}}; //c[0][0]=1,c[0][1]=2,c[1][0]=3,c[1][1]=4 int e[9][10]; memset(e,0,sizeof(e)); //所有初始化为0 }

声明时给初始值叫初始化.例如:int b[3][4]={1,2,3,4,5,6,7,8,4,4,4,4}; 声明后赋值,可以用赋值语句,b[0][0]=1; b[0][1]=2; b[0][2]=3; b[0][3]=4; b[1][0]=5; b[1][1]=6; b[1][2]=7; b[1][3]=8; b[2][0]=4; b[2][1]=4; b[2][2]=4; b[2][3]=4; 数据量大时,则用数

绝对错了,不错你扇死我!二维数组的初始化分为,一种为按行分段初始化,另一种为按行连续初始化.int a[2][3]={{5,6},{7,8},{9,10}}; 这是第一种,int a[2][3]={5,6,7,8,9,10}; 这是第二种.a这个二维数组一共2行3列共6个存储空间,图形为:5 67 89 10 正好占满.而且C语言默认可以省略行数,但不能省略列数 你看看你的初始化 int a[][4]={{0,0,3},{},{0,10}};行数省略是没有任何问题的.但是你是按行分段初始化 第一行0 0 3 第二行 第三行0 10 注意了,你只对其中3行进行了初始化,第4行丢了.所以a是一个半初始化的数组,C编译系统绝对不承认!

{ int a[10][10],i,j,k,m; for(i=0;i<10;i++) for(j=0;j<10;j++) scanf("%d",&a[i][j]); for(k=0;k<10;k++) for(m=0;m<10;m++) printff("%d",a[k][m]); printf("\n"); }

第一种:int a[3][4]={ 1,1,1,1, 1,1,1,1, 1,1,1,1}; 第二种:a[0][0]=1;a[0][1]=1;a[3][4]=1;

你定义的就是一个二维数组,第二维的个数是4,为了把所有的数据能分成四份有没有遗漏,那第一维就是3了.

A B C 都是3维数组,只有D是2维的,而且A后面应该是{}号.

a错 列下标不可省略b正确c错 定义2行 赋值3行d错 数组初始化时不可以只赋值{}

mdsk.net | 9213.net | 4405.net | artgba.com | pxlt.net | 网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com