66问答网
所有问题
c++初始化二维数组为何必须写列数?
如题所述
举报该问题
推荐答案 推荐于2017-12-15
首先,数组定义的时候必须指定大小。指定的含义是指要么你显式地写出数组的长度,或者是让
编译器
自己通过初始化的元素的个数去计算长度。无论哪种,都是能确定大小的,当数组创建完成后,这个大小就无法改变了。
其次,数组的初始化可以只初始化前面一部分,例如 int a[10] = {1,2,3}。
然后,对于
二维数组
,如果你指定了行数和列数,那么这种情况最简单,直接用你写的行列数;如果只指定了列数,那么必须有一个初始化列表,然后就会按照列数c和初始化的元素个数n去计算行数,行数r等于n/c的上取整。但如果你不指定列数,C编译器不会给你统计初始化列表然后计算应该有多少列,而且没有初始化列表的根本无法确定行列数。
所以必须有列数。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/svnixxx2x.html
其他回答
第1个回答 推荐于2016-03-12
百度了一下,知道有两种初始化方式,但是都是先从左到右,所以需要知道列数才能初始化每一行。行数不知道,知道列数,可以按后面的内容一行行初始化话。不知道列数就不知道一行初始化多少 。
以下内容是百度到的,
二维数组的初始化分为两种,一种是顺序初始化,一种是按行初始化。
所谓按顺序初始化就是先从左向右再由上而下地初始化,即第一行所有元素都初始化好以后再对第二行初始化。
而按行初始化则是用一对大括号来表示每一行,跳过前一行没有初始化的元素,在行内从左向右地进行初始化。对于没有初始化的元素,则都是一个不确定的值。本回答被提问者采纳
第2个回答 2013-09-14
int[][]={1,2,3,4,5,6}你能说清楚这几个元素的位置?如果是int[][3]={1,2,3,4,5,6};你就会知道是{1,2,3},{4,5,6}这两行了。你可能又要问,为什么不能这样写:int[2][]={1,2,3,4,5,6}?没办法c语言就是这样规定的!
相似回答
c++二维数组初始化
问题
答:
{4,5,6} {2,0,0}} 数组在内存中默认是按行存储的,所以你在
初始化
的时候,已经制定了多少行了,就可以省略第一个参数了,即行个数。另外:虽然你在这里是
二维数组
,其实在内存中还是一块连续的一位数组保存的。&b[1][0] - &b[0][2]只差4个字节即可验证。
二维数组初始化
时如果没有将所有元素赋值,可否省略行
数?
答:
int arr[][3] = {1};这个是正确的,但
初始化
省略行数要看情况。
c语言中
二维数组
按行还是按列存储啊?
答:
在c语言里
二维数组
元素在内存中是按行存放的。二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((i −...
定义
数组
int a[][2]={{0},{}}; 这错在哪?有谁能告诉我,谢谢
答:
二维数组
第一项
必须
给定值,因为如果不赋值编译器是不能通过
初始化
式推断数组大小的。第二项则不是
一定要
给定值的。因为可以通过初始化式推断。建议都设置值,这是好习惯。
二维数组
的定义和
初始化
答:
只可以省略行,不能省略列。如a[][2]={1,2,3};那这就是一个3行2列的二位数组。定义二维数组二维数组是由多个一维数组组成的,可以通过定义多个一维数组来定义二维数组。
初始化二维数组
可以通过在定义二维数组时直接赋值的方式来初始化二维数组。访问二维数组可以通过下标的方式来访问二维数组中的元素,...
二维数组
的
初始化
int a[3][]={{1},{6}}正确吗?
答:
第一个不正确.对
二维数组
的
初始化
,行可以缺省但列决不可以缺省,例如下边的三个语句是等价的 int a[3][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,7,8,9,10,11,12} ...
大家正在搜
c二维数组初始化为0
二维数组必须指定列数
对二维数组初始化
对二维数组进行初始化
二维数组初始化详解
二维数组的初始化方式
二维数组定义初始化
二维数组未初始化的值
java二维数组初始化
相关问题
C++ 的二维数组初始化
C++静态成员二维数组的初始化问题
C++ 二维数组如何初始化为0
C++里 初始化二维数组int a [ 2 ] [ 3 ] ...
C++二维数组初始化问题
C++的二维数组定义初始化问题
c++建立一个3行2列的二维数组,初始化后并且输出
C++里 初始化二维数组int a [ 2 ] [ 3 ] ...