hyfm.net
当前位置:首页 >> 二维数组初始化规则 >>

二维数组初始化规则

若声明为全局量,例如放在 main() {} 函数以前,则编译时,自动初始化为全0.一般来书,二维数组初始化的形式为:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 };在{ }中给出各数组元素的初值,各初值之间用逗号分开.

//一般二维数第一维度可以通过初始化来确定,但是其他维度一定要明确 A)int c[3][]={{3},{3},{4}}; //二维不明确(列) ,错误 B)int c[][3]={{3},{3},{4}}; //一维(行)通过初始化确定,即3行3列,正确 C)int c[3][2]={{3},{3},{4},{5}}; //定义3行2列,但是初始化是4行,错误 D)int c[][3]={{,3},{},{3}}; //行数由初始化决定, 当中有3个大括号说明由3行 //第一行的初始化为{,3}, 第一行的第一个元素没写~~,不会默 //认为0的~~ 应该是{0,3}

#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 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编译系统绝对不承认!

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

比如:int a[2][2]={0}; //全初始化为0int b[][]={{1,2},{3,4}};//也可以在b[][]标出数据长度 int c[2][2]={1,2,3,4};//c[2][2]必须有数据长度

两种方式:一 使用for循环 如 int DestArray[y][x];//目的数组 int SrcArray[y][x];//源数组 for(int i=0; i { for(int j=0; j { DestArray[i][j] = SrcArray[i][j]; } } 二 使用内存操作函数来提高效率 二维数组初始化,将DestArray全部置为零 int DestArray[y][x]; for(

int 型是整形数组,B里面是字符型的不是整形的,D数组应该是大括号,不能用小阔话,A应该是两行的正确的应该是{{1,2},{3,4},{5}};

声明时给初始值叫初始化.例如: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; 数据量大时,则用数

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

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