c语言int a[2][3]={{1,2,3,4,5,6}};和int a[2][3]={{1,2,3}};哪个定义是正确的?为什么?

如题所述

第二个正确 第一个如果写成{{1,2,3},{4,5,6}}就是对的了,不然给第一维赋值6个元素已经超出了数组容量3 第二个的内容其实是{{1,2,3},{0,0,0}},如果不显示赋值,数组的其他部分会自动初始化为0
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-17
呵呵,前面这个是错误的哈,!!本回答被提问者采纳

c语言int a[2][3]={{1,2,3,4,5,6}};和int a[2][3]={{1,2,3}};哪个定...
第二个正确 第一个如果写成{{1,2,3},{4,5,6}}就是对的了,不然给第一维赋值6个元素已经超出了数组容量3 第二个的内容其实是{{1,2,3},{0,0,0}},如果不显示赋值,数组的其他部分会自动初始化为0

(C语言)int num[ ][3] = {{1,2},3,4,5,6}; 为什么是对的?
对于 int num[ ][3] = {{1,2},3,4,5,6}, 由于有了{1,2},所以第一行已经明确了,而第二行则从 3开始,由于每行有3列,所以第二行可以确定为 3,4,5这三个元素,而第三行则只有6这一个元素。由于元素已经全部明确,所以即便没有指定num的行数,其实程序已经很明确第算出了它的行...

c语言中 int a[2][3]={0}; 请问这句话为什么不正确,但是却可以给每个元...
因为你申请的是一个2*3的数组,里面有6个元素,但你却只赋了一个值。

C语言:定义int a[3][2]={1,2,3,4,5,6};,详解**(a+1)、*(a+1)[0...
它们的值都是3。因为a是指向有2个元素的一维数组的指针,那么——(a+1)——所以,a+1指向了从3开始的二维数组,*(a+1)就是元素3的指针,**(a+1)自然是3。(a+1)[0]——由于[]优先级高于*,所以被解释为*((a+1)[0]),参照1,(a+1)[0]就是元素3的指针,*(a+1)[0]就是元素...

C语言题目 对二维数组的正确说明是:
int a[2][3]={{1,2,3},{4,5,6}};在{ }内部再用{ }把各行分开,第一对{ }中的初值1,2,3是0行的3个元素的初值。第二对{ }中的初值4,5,6是1行的3个元素的初值。相当于执行如下语句:int a[2][3];a[0][0]=1;a[0][1]=2;a[0][2]=3;a[1][0]=4;a[...

C语言中inta[2][3]={1,2,3,4,5,6};求a[1][2]的值怎么求
【2】【3】代表 两行 三列,并且下表都是从0开始的,所以a【1】【2】 代表了第二行,第三列。排序如下 1 2 3 4 5 6 显然可见 值为6

C语言,将一个二维数组a的行和列的元素互换,存到另一个二维数组b中。列...
看来你是个超级小菜鸟啊,解析注上了,慢慢学习吧 main(){ int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;printf("array a:\\n"); \/\/双引号里的是字符串提示信息,作用是在屏幕上显示提示 for(i=0;i<=1;i++) \/\/外循环i遍历a数组的i行 { for(j=0;j<=2;j++)...

c语言 int a[2][3]={{1},{2,3}};,则a[1][0]的值是___要详解。。。_百度...
a[1][0]的值是2 int a[2][3]即定义了一个二维数组,每维长度为3 令int a[2][3]={{1},{2,3}};相当于int a[2][3]={{1,0,0},{2,3,0}};编译器会自动帮你把每一维不足的部分以0填充。a[1][0]为第二维第一个元素,即{{1,0,0},{2,3,0}};中的2 ...

inta[]={1,2,3};
数组定义为int a[2]3]={1,2,3,4,5,6},数组元素a[2][1]的值为6。数组元素作为组成数组的基本单元,数组元素变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量,而不...

C语言中 为啥int a[][]={{1,2,3}{4,5,6}{7,8,9}};正确而int a[][4...
第二维长度需要指定,第一维不需要。int a[][]应该是不对的。可以在编译器里面试一试。

相似回答