1樓:
相當於初始化陣列
int a[3]=
這個初始化對於這個陣列的前7個元素分別初始化為1,3,2,4,5,6,0,剩餘則全部初始化為0;
這個陣列是2維陣列,給出第2維長度為3,那麼編譯器根據初始化的情況對第一維長度進行判斷,給出能容納所有初始化數值的最小長度。這裡編譯器應該選擇a[3][3],即初始化了個3x3陣列,一共9個元素。
c語言裡下標都是從0開始的
a[2][2]代表第9個元素,應該等於0
各位當然不是下標越界,測試程式如下
#include
int main()
;printf("%d\n",a[2][2]);
printf("%u",sizeof(a)/sizeof(int));
return 0;
}測試結果,輸出:09
2樓:金色潛鳥
題目是否抄錯了?
int a[3]=,,,} 中
a[1][0]=3,a[1][1]=2,a[1][2] 沒有值, a[1][2]=0 啊。選項中沒有啊!
a[2][0]=4, a[2][1]=5, a[2][2]=6. 題目問 a[2][2] 嗎?
3樓:匿名使用者
a[2][2]=0.
int a[ ][3]=;
定義一個每行三個元素但行數不確定的陣列a。
初始化時決定行數。每給三個數就多一行。
最後不夠三個的系統預設初始化為0。
4樓:匿名使用者
a[0][0]=1
a[0][1]=3
a[0][2]=2
a[0][3]=4
a[1][0]=5
a[1][1]=6
a[1][2]=0
a[1][3]=null
a[2][2]下標越界
在執行int a[][3]={1,2,3,4,5,6}; 語句後,a[1][0]的值是 a: 1 b: 2 c: 4 d: 5 10
5樓:匿名使用者
選c。首先根據題目的條件,a中一共有6個元素,a的第2維的大小是3,也就是說,a是一個2行3列的矩陣。
對於二維陣列,是先排滿一行,再排一行的。也就是說,a的實際排列為[1, 2, 3]
[4, 5, 6]
所以,a[1][0]就是第2行,第1列的元素,為4。
程式執行如下:
12. 若有說明:int a[][3]={1,2,3,4,5,6,7};則陣列a第一維的大小是( )。
6樓:格子裡兮
若有說明:int a[3]=;則陣列a第一維的大小是3。
int a:第一個中括號表示有此二維陣列有幾行,第二個表示有幾列。
故int a[3]=;說明此陣列有n行,3列;也就是說每行有三個元素,所以第一行有1,2,3 這三個元素,第二行有4,5,6三個元素,第三行有7這個元素,不足的兩個元素由0來補足。
對陣列進行初始化,要麼兩個維度都不寫,由賦值的陣列確定,或者第二維可以不寫,第一維要寫,再由賦值陣列確定。
陣列中的下標是從 0 開始的(而不是 1)。那麼,如何通過下標表示每個陣列元素的呢?通過“陣列名[下標]”的方式。
例如“int a[5];”表示定義了有 5 個元素的陣列 a,這 5 個元素分別為 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分別表示這 5 個元素的變數名。
如果從 1 開始,那麼陣列的第 5 個元素就是 a[5],而定義陣列時是 int a[5],兩個都是 a[5] 就容易產生混淆。而下標從 0 開始就不存在這個問題了!所以定義一個陣列 a[n],那麼這個陣列中元素最大的下標是 n–1;而元素 a[i] 表示陣列 a 中第 i+1 個元素。
另外,方括號中的常量表示式可以是“數字常量表示式”,也可以是“符號常量表示式”。但不管是什麼表示式,必須是常量,絕對不能是變數。
c 語言不允許對陣列的長度進行動態定義,換句話說,陣列的大小不依賴程式執行過程中變數的值。非通常的情況為動態記憶體分配,此種情況下陣列的長度就可以動態定義。
7樓:匿名使用者
int a;第一個中括號表
示有此二維陣列有幾行,第二個表示有幾列;
故int a[3]=;說明此陣列有n行,3列;也就是說每行有三個元素,所以第一行有1,2,3 這三個元素,第二行有4,5,6三個元素,第三行有7這個元素,不足的兩個元素由0來補足
故此定義下陣列a第一維的大小是3
8樓:匿名使用者
若有說明int a[3][4];則對a陣列元素的正確引用是 a[1][3]。a[2][4]越界了最後一個元素a[2][3] 引用時下標從0開始第一行a[0][0] a[0][1]。
。。第三行a[2][0] a[2][1]。。。程式1。
//定義為區域性性質的陣列#include void main() printf("
");}。
9樓:匿名使用者
3,除錯一下就知道了
int b[ ][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]的值為()
10樓:清山媚水
我的回答:
int b[ ][3]=,,,};
因為初始化資料時使用大括號,表示陣列為4行:b[4][3]它的元素是:
b[0][0],b[0][1],b[0][2]b[1][0],b[1][1],b[1][2]b[2][0],b[2][1],b[2][2]b[3][0],b[3][1],b[3][2]初始化b[ ][3]=,,,}相當於
用下列資料初始化(一行的資料不全,表示為0)1 0 0
3 2 0
4 5 6
0 0 0
和上面的變數表對對號,b[2][2] 是 6
11樓:匿名使用者
為6.你把大括號裡的每個陣列看成行:
13,2
4,5,6
0每行有3個元素,沒有寫明數字的就為0。
12樓:匿名使用者
int b[ ][3]=,,,};你這樣寫,實際上陣列為:b[4][3],
因為你在對b賦值的時候,大括號裡使用了4個括號,數字實際上是這樣了:
b[0][3]=; 本來一行有3個元素,但你只賦了一個值,其他的系統會預設給0
b[1][3]=;
b[2][3]=;
b[3][3]=;
看到這裡你應該知道b[2][2]是多少了吧 5;
13樓:
你是這樣子賦值的:
13 2
4 5 6
0所以b[2][2]=6
14樓:衛國者黑鷹
你的題目等價於 int b[4][3]=,,,};
所以b[2][2]=6;
若有以下定義,則陣列元素a[2][2]的值是( ) int a[][3]={{1,2},{3,2,4},{4,5,6},{1,2,3}};
15樓:書一卷世情變幻
a[2][2]=6。
在c語言中,a[常量1][常量2]=,常量1可以沒有,但是常量2必須有。在編譯器進行編譯時,會有這兩種情況,下面分別說明。
1、若指定了 常量1、常量2的值,為了方便說明,先假設常量1=2、常量2=2,那麼a[0]=,a[1]=。例如,a[2][2]=,那麼a[0]=,a[1]=。
2、若常量1沒有時,會按照常量2的數值來設定一組資料的個數,組數不限。例如,a[2]=,那麼a[0]=,a[1]=,a[2]=。
16樓:戊問鮃
int a[3]=,,,};這樣就是陣列應該是a[4][3],4行3列,第一行是1,2,0,第二行是3,2,4,以此類推,所以a[2][2]是6,不懂hi我
17樓:沒有響應
值是6陣列的下標是0開始的所以
a[2][2]就是a陣列第三個元素也就是 4,5,6這個陣列 這個陣列第三個元素就是6
18樓:匿名使用者
答案6這個陣列a 就相當於
1 23 2 4
4 5 6
1 2 3
而超始下標為0 去裡面找找看a[2][2]是幾?
若有定義int a [][3]={1,2,3,4,5,6,7,8,9},則表示式size of(a)/size of(a[0])的值為多少
19樓:十張樹
若有來定義int a [3]=,則表示式size of(a)/size of(a[0])的值為
對於一個整型二維陣列,size of(a)=9 即實際內容所佔的大小;
a[0] 是指第0行的3個元素 因而size of(a[0])=3;
最後答案就是 9/3=3;
20樓:匿名使用者
對於一個整型二維陣列,size of(a)=9 即實際內容所佔的大小
a[0] 是指第0行的3個元素 因而size of(a[0])=3
最後答案就是 9/3=3
21樓:匿名使用者
sizeof(a)=9; sizeof(a[0])=3, 故9/3=3.
int a[3] [3] ={1,2,3,4,5,6,7,8,9};
22樓:我才是柳隨風
這個二維陣列
實際上是一個有3個元素的一維陣列,其中陣列的元素又是一個有3個元素的一維陣列。
我們先按行優先重新排列一下:
int a[3][3]=
;c和c++中的陣列是從0開始編號的,
第1行:a[0][0],a[0][1],a[0][2]第2行:a[1][0],a[2][1],a[1][2]第3行:
a[2][0],a[2][1],a[2][2]再看你要取的值:a[1][3]在**呢?顯然在a[1][2]之後,但該值已經超出了陣列的界限(陣列有3個元素),即下標溢位了,溢位到了**呢?
因為c/c++中多維陣列(儲存方式)相當於連續的一維陣列,因此,這裡它的溢位位置恰好是a[2][0]所在的位置。
現在可以給你答案了:a[1][3]=7
23樓:匿名使用者
不知道,因為a[0][0]表示第一行第一列,a[0][1]表示第一行第二列
a[1][0]表示第二行第一列,而a[1] [3]表示第二行第四列,而這個陣列是3行3列的,所以不知道a[1] [3]等於多少,沒定義
24樓:今天最慘痛
7a[3][3] 就是3行3列
a[1][3] 就是第2行第4列(因為陣列下標是從0開始記的),但是陣列裡沒有第4列,順著往下數,就是第3行的第一列,就是7.
25樓:馮益斌
賦值後,a的元素為
1,2,3,4,5,6,7,8,9
4,5,6,7,8,9
7,8,9
a[1] [3]=7
26樓:
0列 1列 2列
0行 1 2 31行 4 5 62行 7 8 9a[1] [3]=6
27樓:匿名使用者
越界了,但是由於二維陣列的線性儲存性質,
a[1][3]可能是a[2][0]這個資料,也就是7
我只能說可能啊,
28樓:匿名使用者
沒有,最多到a【1】【2】
29樓:
輸出值為7.題一點問題都沒。
在C 中,int a 6,b 7,c,d d c a,b 15 分別求出a,b,c,d的值
a 6,b 7,c 6,d 22 這裡不好理解是d c a,b 15 括號內完成了兩個事 1,c a,即為c賦值 2.完成b 5賦值給d. 直接給你解釋這句d c a,b 15 編譯器會這樣進行操作,因為括號優先所以先括號,c a 再進行逗號運算 b 15 最後進行賦值運算 d b 15 因為b 1...
C 中,intp 和int a怎麼會是型別呢
int b 2 是一維陣列,其位址型別是 int int a 1 2 是二維陣列,其位址型別是 int 2 凡是陣列指標都涉及乙個概念,那就是元素對齊和列對齊。什麼是元素對齊?int b 2 定義了乙個一維陣列,該陣列每個元素型別是int,而乙個int資料占用記憶體4位元組 32位系統 也就是說元素...
C 中如下定義是否合法,int a 41,2,3,45,6,78,
不合法二級 最多只能3對,你定義的是3行4列的陣列,初始化列表卻是4行的,不行的 不合法,a只定義3行,但是初始化裡有四對大括號,這是唯一錯誤。注意,每個大括號裡最多四個元素,這是對的,允許有少於四個,錯誤不在這裡。 可以,我回答你主提問的那問,因為你寫出的式子不一致。和int a 3 4 1,2,...