c语言 程序设计 关于二维数组 初始化

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{ int i,j;
int a[][3]={1,2,3,4,5,6,7};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d\n",a[i][j]);

}
输出 123456700
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{ int i,j;
int a[][3]={1,2,3,4,5,6};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d\n",a[i][j]);

}
输出1 2 3 4 5 6 0 2 1245120
如果说因为 这个数组不是静态的?这样?
那么这个呢
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{ int i,j;
static int a[][3]={1,2,3,4,5,6,7};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d\n",a[i][j]);

}
输出1 2 3 4 5 6 0 4205760 1
怎么不是自动默认为 0 呢那些那么直接给出的
关于这样的二维数组定义 要注意些什么呢?
哪位能说说么?

大哥,你越界了!~
第一次
123456 后面那个 0 2 就是 传说中的j 和 i
第二次
123456 后面的0 就是传说中的j
这次i在数组所在虚拟内存的前面

注意,不要越界不要越界啊
修改的时候千万不要越界,万一不小心改了i 或者j 的值,你就哭吧!~

注意事项嘛。。就是不要越界,还有,能不用二维数组就别用二维数组!~
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-09
怎么不是自动默认为 0 呢那些那么直接给出的

不是初始化时就赋值的内存,什么值都有可能

使用变量前要定义和初始化,老生长谈,那样才能一切在掌握中,不会出现奇怪的数值。
第2个回答  2010-09-09
数组定义后是不会默认为0的。系统会给一个随机数。
至于二维数组定义要注意什么,我也不知道。我自己也很少赋初始值。注意不要越界就行了。

c语言编程如何实现二维数组的创建和初始化?
在 C 语言中,实现二维数组的创建和初始化通常通过使用数组的数组来完成。例如,创建一个 3x3 的二维数组并初始化所有元素为 0 的代码如下所示:在这个示例中,两组花括号被用来表示一个二维数组,每组花括号包含一个一维数组。例如,{0, 0, 0} 表示第一行的三个元素,{0, 0, 0} 表示第二行...

C语言|二维数组的定义、初始化、赋值
在C语言中,二维数组是按行排列的。也就是说,先存放a[0]行,然后是a[1]行,最后是a[2]行;每行中的4个元素也是依次存放。数组a为int类型,每个元素占用4个字节,整个数组共占用4×(3×4)=48个字节。可以这样认为,二维数组是由多个长度相同的一维数组构成的。【实例1】一个学习小组有5个人...

c语言二维数组如何初始化
1 有两种方法 (1)在定义时可以直接赋值来初始化 (2)在定义后可以为其元素一个个来赋值 2 示例 include<stdio.h>void display(int arr[2][3], int row, int col){for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){printf("%d ", arr[i][j]);}puts("...

c语言有关二维数组变量初始化
int a[3][2];\/先定义 for(i=0;i<=3;i++) \/\/用双重for循环赋值,i,j表示二维数组下标 for(j=0;j<=2;j++)scanf("%d",&a[i][j]);希望对你有所帮助。

C语言 指针二维数组怎么初始化
1、数组指针初始化方法:int (*p)[4];char a[3][4];p=a;p=&a[0];p=a+1;p=&a[1]; \/\/都正确 p=a[0]; \/\/错误 p=a[1]; \/\/错误。2、首先,指针p表示的是,指向一个含有4个元素的一维数组的指针,因此,必须把一个含有4个元数的数组的地址赋给指针p才会正确。因为二维数组...

如何用c语言实现二维数组?
使用 C 语言实现二维数组可以通过以下步骤:1. 声明一个二维数组变量:首先,需要声明一个二维数组变量来存储数据。声明二维数组需要指定数组的行数和列数,并可以给数组命名。2. 初始化二维数组:可以选择在声明二维数组时初始化,或者在后续的代码中初始化数组。可以使用循环结构来遍历数组的每个元素,并...

c语言二维数组初始化的三种方式
c语言二维数组初始化的三种方式 int a[3][3]={1,2,3,4,5,6,7,8,9};int a[3][3]={{1,2,3},{4,5},{7}};int a[3][3]={0};

C语言题目 对二维数组的正确说明是:
c是正确的。二维数组初始化的形式为:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 };在{ }中给出各数组元素的初值,各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素。有如下几种初始化方式:⑴ 分行进行初始化 int a[2][3]={{1,2,3},{4,5,6}};在{ }内部...

c语言 怎么把一个二维数组初始化为空
int 表示要填充的值,最后的unsigned表示填充的字节数。例如:include<string.h> void main(){ int a[10][20]={0}; \/\/方法一,所有初始化为0 int *p[10][20]={NULL};char c[10][20]={'\\0'};double b[50][200]};memset(b,0,sizeof(b)); \/\/方法二,所有初始化为0 } ...

C语言:定义一个5行5列的二维数组,并初始化所有值(可以整体初始化,也...
include<stdio.h>int main(){int a[5][5],x,y,i,j,k=0,max; for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]); for(i=0;i<5;i++) {max=a[i][0];y=0;for(j=0;j<5;j++)if(max<a[i][j]){max=a[i][j];x=i; y=j;}for(j=0;j<5;j...

相似回答