c语言-C语言二位数组初始化的问题

问题描述

C语言二位数组初始化的问题

我这有一本书上的解释里面int b[][4]={{0,0,3},{},{0,10}};是正确的,但是习题里面这个int b[][3]={{1,2,3},{},{4,5}};就是错误的;在vc6.0里面输入是前面的是错的,后面的是对的,我想确定下到底哪个是对的。初始化的时候花括号中可以社么都不写吗?谢谢了!

解决方案

可能是编译器的问题吧,在vs2010中以上两种赋值都是正确的。
初始化的时候花括号中什么都不写 例如:
int b[][4] = {}; //也是可以的 二维数组用着比较灵活 关键是你想怎么用了


解决方案二:

在 VS2005 中,以下两个都是正确的:

int b[][4]={{0,0,3},{},{0,10}};
int bb[][3]={{1,2,3},{},{4,5}};

解决方案三:

你要弄清楚 数组的 行列概念,然后 看哪些可以 缺省

解决方案四:

数组的初始化 可以直接初始化赋值 也可以通过执行程序后输入数值初始化

解决方案五:

编译器不同,解释的也不同,两种都对

解决方案六:

编译器能通过是编译器的处理不一样,按标准做 int b[][4]={{0,0,3},{0},{0,10}};就好了

解决方案七:

vs2010 中 int a[][3]={{},{},{}}; 执行代码

 for(i=0;i<3;i++)
        for(j=0;j<3;j++)

            printf("%dn",a[i][j]);

输出:
0
0
0
.....

解决方案八:

编译器不同,解释的也不同,两种都对

时间: 2024-10-02 04:56:42

c语言-C语言二位数组初始化的问题的相关文章

数组指针、指针数组以及二位数组的深入解析_C 语言

int *p[3]与int (*p)[3]的区别*p[3]这个是一个指针数组,它所代表的意思是数组中的每一个元素都是一个指针变量,而(*p)[3],p是一个指针变量,表示指向一个含有3个整型元素的一维数组. 复制代码 代码如下: int i,j;    int a[2][3]={3,4,5,6,7,8}; //    int *p[3] ;  //表示一个数组,数组中的元素是指针类型,一共有三个元素    int (*q)[3]; //是一个指针,指向一个含有三个int型的数组(q+1)会跳三个

C语言 指针与二维数组详解_C 语言

二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0   1   2   3 4   5   6   7 8   9  10  11 但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存: C语言中的二维数组是按行排列的,也就是先存放 a[

C语言,寻找二维数组鞍点,代码个人测试正确, 但是wrong answer, 求大神指点

问题描述 C语言,寻找二维数组鞍点,代码个人测试正确, 但是wrong answer, 求大神指点 Description 给定一个海拔平面图,相当于一个二维数组,数组的每个元素表示一个点的海拔高度.请判断该图中是否存在鞍点,如果存在,则输出该鞍点的位置,即行.列坐标. 本题规定鞍点的定义为:该点的值在它所在的那行中是唯一最大的,且该点的值在它所在的那列中是唯一最小的. Input 输入有多个测试用例,如果把每个测试用例看作一个"块",那么,在一个"块"中: 第一行

js中一维数组和二位数组中的几个问题示例说明_基础知识

js中的数组,可以存放各种数据类型(数值,字串) js中的数组没有越界,当输出的数组下标越界了,会显示undefined. js中的数组是默认动态增长的 遍历数组的一种简单方式. for(var key in arr){ window.alert(key+"= "+arr[key]); } 在给一个空的二维数组赋值的时候出现的问题: var arr2=[]; arr2[1][1]=45;//js不支持这种赋值方法 解决方法: //在这之前需要初始化定义arr2有多少行. for(var

java-关于Java二位数组行列互换问题

问题描述 关于Java二位数组行列互换问题 刚开始学Java,不太懂,这个为什么报错呢? 解决方案 行列下标搞错了,结果数组越界,仔细检查下就能看出来. 解决方案二: 笔误了吧 swap中i<arr[i].length改成j<arr[i].length

java二维数组问题-学习java二位数组遇到的问题

问题描述 学习java二位数组遇到的问题 public class TestSplit { public static void main(String[] args){ String s="1,2;3,4;5,6,7"; String[] s1=s.split(";"); double[][] d=new double[s1.length][];//第一维的长度赋值 for(int i=0;i<s1.length;i++){ String[] s2=s1[i

php二位数组获取重复元素

问题描述 php二位数组获取重复元素 $arr = array( array('0001','0002'), array('0001','0002','0003'), array('0001','0002','0003','0005'), array('0001','0002','1003','0005'), ); 希望得到结果,获取重复元素 $arr = array('0001','0002'); 解决方案 php获取数组中重复数据php 获取数组中重复数据 解决方案二: 最新版本ke没有问题

直观理解C语言中指向一位数组与二维数组的指针_C 语言

一维数组和指针:对于一位数组和指针是很好理解的: 一维数组名: 对于这样的一维数组:int a[5];  a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量就声明一个箱子,比如我们开辟出一个苹果类型的箱子, 给这个变量赋值就是把盛放苹果的箱子中放入一个实实在在的苹果, 这就是变量的赋值.  而对于数组来说, 就是一组类型相同的箱子中,一组苹果箱子, 可以放入不同的苹果. 一维数组空间: 变量被声明后, 我们

c语言-java的二维数组和C语言二维数组的储存结构有什么区别?

问题描述 java的二维数组和C语言二维数组的储存结构有什么区别? java的二维数组和C语言二维数组的储存结构有什么区别?,数据结构有什么区别吗?有人说java的数组在内存中存储不是连续的,, 解决方案 java二维数组的存储在内存中不一定连续.二维数组是一维的一维,也就是树形结构. 解决方案二: 个人认为是连续的,要支持随机访问,当然如果内存真的不是连续的,那就是vm的事情了 解决方案三: C语言是连续的,Java应该也是连续的吧,这个问题还真没深究过.