『壹』 c語言二維數組怎麼初始化
初始化是在數組定義時進行的,根據你的說法,定以後就只能對每個元素單獨賦值來實現
『貳』 c語言 怎麼把一個二維數組初始化為空
初始化二維數組可以試試
charq[3][3]={{0}};
或者
#include<string.h>
memset(q,0,sizeof(q));
輸出沒有很好的方法,你可以封裝一個函數。以後都用這個函數輸出。
functionprintArray2(arr,row,col)
{
for(inti=0;i<=row;i++){
for(intj=0;j<=col;j++){
printf("%c",arr[i][j]);
}
printf(" ");
}
}
『叄』 c語言 程序設計 關於二維數組 初始化
大哥,你越界了!~
第一次
123456 後面那個 0 2 就是 傳說中的j 和 i
第二次
123456 後面的0 就是傳說中的j
這次i在數組所在虛擬內存的前面
注意,不要越界不要越界啊
修改的時候千萬不要越界,萬一不小心改了i 或者j 的值,你就哭吧!~
注意事項嘛。。就是不要越界,還有,能不用二維數組就別用二維數組!~
『肆』 C語言 二維數組初始化
我試了一下 編譯也是錯誤的 加0是對的 ;我想應該是 二維數組的初始化的時候 你既然定義了兩行兩列的矩陣 如果a[2][2]={{2},{0}}系統是默認後面以0來代替數據 如:2 0
0 0 但是如果是a[2][2]={{2},{}}系統不會默認用0代替其他數據 會報錯
『伍』 c++二維數組初始化
C++二維數組初始化的形式 原創
2019-08-26 09:36:23
1點贊
ys1305
碼齡4年
關注
數據類型 數組名[整常量表達式][ 整常量表達式]={ 初始化數據 };
在{ }中給出各數組元素的初值,各初值之間用逗號分開。把{ }中的初值依次賦給各數組元素。
有如下幾種初始化方式:
⑴ 分行進行初始化
int a[2][3]={{1,2,3},{4,5,6}};
1
1
在{ }內部再用{ }把各行分開,第一對{ }中的初值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[1][1]=5;a[1][2]=6;
1
2
1
2
注意,初始化的數據個數不能超過數組元素的個數,否則出錯。
⑵ 不分行的初始化
int a[2][3]={ 1,2,3,4,5,6};
1
1
把{ }中的數據依次賦給a數組各元素(按行賦值)。即a[0][0]=1; a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;
⑶ 為部分數組元素初始化
static int a[2][3]={{1,2},{4}};
1
1
第一行只有2個初值,按順序分別賦給a[0][0]和a[0][1];第二行的初值4賦給a[1][0]。由於存儲類型是static,故其它數組元素的初值為0。註:某些C語言系統(如:Turbo C)中,存儲類型不是static的變數或數組的初值也是0。
static int a[2][3]={ 1,2};
只有2個初值,即a[0][0]=1,a[0][1]=2,其餘數組元素的初值均為0。
⑷ 可以省略第一維的定義,但不能省略第二維的定義。系統根據初始化的數據個數和第2維的長度可以確定第一維的長度。
int a[ ][3]={ 1,2,3,4,5,6};
1
1
a數組的第一維的定義被省略,初始化數據共6個,第二維的長度為3,即每行3個數,所以a數組的第一維是2。
一般,省略第一維的定義時,第一維的大小按如下規則確定:
初值個數能被第二維整除,所得的商就是第一維的大小;若不能整除,則第一維的大小為商再加1。例如,int a[ ][3]={ 1,2,3,4};等價於:int a[2][3]={ 1,2,3,4};
若分行初始化,也可以省略第一維的定義。下列的數組定義中有兩對{ },已經表示a數組有兩行。
static int a[ ][3]={{1,2},{4}};
展開全文
二維數組所有元素初始化為0
『陸』 c語言有關二維數組變數初始化
二維數組可以看成特殊的一維數組,每個元素又由一個一維數組組成。
例如:構建一個maxrownum*maxrownum的矩陣
longdouble**data1_bfE;
data1_bfE=(longdouble**)malloc(maxrownum*sizeof(longdouble*));
for(i=0;i<maxrownum;i++)
{
data1_bfE[i]=(longdouble*)malloc(maxrownum*sizeof(*data1_bfE));
}
data1_bfE[i]=(longdouble*)malloc(maxrownum*sizeof(*data1_bfE));
動態分配maxrownum個longdouble的內存空間,跟long double a[5]相似,但前者是堆上分配的,後者是棧上分配的;
data1_bfE=(longdouble**)malloc(maxrownum*sizeof(longdouble*));
意思就是定義一個有maxrownum個longdouble類型的指針的動態數組,然後在裡面存放指針,相當於容器,data1_bfE就會成為指針的指針。
注意事項:C語言在定義數組和表示數組元素時常常採用a[ ][ ]的形式,使用方便,不易出錯。
『柒』 c語言二維數組的初始化
//不想講究技巧的話,就如下面老老實實的初始化
int twoArray[3][5];
int i,j;
for (i = 0;i<3;i++){
for (j = 0;j<5;j++){
twoArray[i][j] = 0;
}
}
//有時候初始化時有數據,就按下面的方法
int twoArray[][]={{2,3,4},{5,4,5}};
//以上初始化,表示數組的大小為[2][3]
『捌』 c語言二維數組的的初始化問題。
你哪些一維數組都是一樣長嗎
如果是一樣長,並且長度是一個已知常量N,假設有5個一維數組,類型為int
int array1[N]
int array2[N]
int array3[N]
int array4[N]
int array5[N]
假設一維數組是上面的5個。二維數組 int array[5][N]
for(int i=0;i<N;i++)
array[0][i]=array1[i];
for(int i=0;i<N;i++)
array[1][i]=array2[i];
for(int i=0;i<N;i++)
array[2][i]=array3[i];
for(int i=0;i<N;i++)
array[3][i]=array4[i];
for(int i=0;i<N;i++)
array[4][i]=array5[i];
『玖』 c語言二維數組初始化
聲明時給初始值叫初始化。例如: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;
數據量大時,則用數據文件,用輸入語句讀入數值。
函數傳遞也可以:
void a1(int *a){
int b[3][4]={1,2,3,4,5,6,7,8,4,4,4,4}; // 數據在 b[3][4]中
int i,j;
for (j=0;j<3;j++)
for (i=0;i<4;i++)
a[j*4+i]=b[j][i];
}
main()
{
int a[3][4];
int i,j;
a1(&a[0][0]); // 把2維數組a[][] 看成1維,數組元素順序排列
for (j=0;j<3;j++){
for (i=0;i<4;i++) printf("%3d ",a[j][i]); // 輸出獲得的數值
printf("\n");
}
return 0;
}
『拾』 C語言二維數組的初始化表示方法有哪些
#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
}