C語言題求問已知int a 23,2,1則表示式「a」的值是 B

時間 2021-08-14 06:07:21

1樓:

首先a[0][0]=3;a[0][1]=2;a[0][2]=1; 而且都是int整型,所以結果也是整型3/2/1=1

2樓:請叫我路人已

3*2排放是:a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1]

首先 a[0][0]=3 a[0][1]=2 a[0][2]=1

因此 3/2=1 1/1 =1

3樓:

a[0][0]是3,a[0][1]是2,a[0][2]是1,3/2/1答案是1

不懂的話可以問我

4樓:匿名使用者

二維陣列的實際上在記憶體裡儲存格式是一維的

也就是a [3][2]

佔用了 3*2 個int 型別資料的 連續記憶體空間

排放的模式是:

a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1]

為了表示方便,我打了空格分開了,其實是連續儲存的,只是邏輯上認為是二維的而已.

那麼考慮初始化的問題,int a[3][2]=; 分別賦值給了a[0][0] ,a[0][1], a[1][0]

現在考慮 a[0][2]到底是什麼

a[0][2]其實被編譯器解釋為 *( (*a+0 ) + 2) ,a是陣列首地址,

在c/c++編譯器裡,陣列越界是不檢查的,再考慮上面的儲存格式

也就是說 ,*( (*a+0 ) + 2) 這個值應該是指向了 *( (*a+0 ) + 1) =a[0][1] 隔壁的傢伙

現在你知道是誰了吧,a[1][0]

所以a[0][2]就是a[1][0]=1;

後面的簡單算術問題我就不解釋了.

ps,不完全初始化話,沒有賦值的元素都會被編譯器弄成0.

c語言 int a[2][3]={{1},{2,3}};,則a[1][0]的值是_________要詳解。。。

5樓:虞明明

a[1][0]的值是2

int a[2][3]即定義了一個二維陣列,每維長度為3令int a[2][3]=,};相當於int a[2][3]=,};編譯器會自動幫你把每一維版不足的部分以0填充。權

a[1][0]為第二維第一個元素,即,};中的2

c語言高手請進……**等 int a[ ] [3] = {{1,0,2},{ },{2,3}}; 這個語句有什麼錯誤?

6樓:

二維陣列 只有第一維是確定的時候才能寫第二維的長度 你可以兩個都不寫

而且你這個陣列的第二維的長度是不一樣的 你又怎麼能定義成3呢

7樓:匿名使用者

一樓的不會別誤導別人好不?第二維才是不能為空的。第一維可以為空,第二維一定一定不能為空。

這個的錯誤確實中間那個{}的問題,一定至少要有一個值的。假如只有賦值一個值,那後後面的系統自動賦值為0.

8樓:匿名使用者

或者寫成 int a[3][3]=,{},}或者寫成 int a[3]=,,} 你不要為省事而懶得寫,那樣機器識別不了

9樓:德昂當

int a[ ] [3] = ,,};

{}裡面不能空著,不想賦值,也得隨便寫個數.

10樓:匿名使用者

n維陣列中的前n-1維中的值不能省略,除非你把每n維陣列的個數都寫出來。

例如:a=;或a[3]=...

a[3]=,,};或a[3][3]=..

a[3][2]=,},,,,}};或a[1][3][2]......

sta***r1983的回答是正確的

11樓:匿名使用者

寫**的時候一定不要開輸入法,你寫的分號是全形的,刪了重新寫。

還有多餘的空格不要隨便留。

你寫的語法完全沒有問題。

既然談到外部陣列了,那你更不能在這個檔案裡面初始化了,只能用語句初始化。 在哪兒定義了在哪兒初始化,你要用它的話只能用extern申明。

12樓:匿名使用者

主要是{}有問題,你試著放個0進去

13樓:匿名使用者

答:提問者主動宣告排除了書寫時出現輸入法切換導致的書寫錯誤的可能,單從這句來看語法方面沒有任何錯誤,錯誤關鍵在於你問題補充時的一句「外部陣列」!

說明:1.c語言中二維陣列初始化時第二維不可以省略,而第一維是可以省略的;

2.外部陣列只能在原檔案中加外部全域性變數extern初始化後在外部引用,因此不能在此程式中對外部陣列變數進行初始化;

以下為測試源**以及 linux gcc下編譯執行結果:

#include

int main()

,{},};

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

}執行結果:

1 0 2

0 0 0

2 3 0

以事實說話,實踐才是真理……

14樓:未來2過去

改為int a[ ][3] = ,,,0};

求問c語言兩個題,求教C語言程式設計題兩道。

1 要相信執行結果 巨集是替換 程式是這樣執行的 fb fb k,k 1 k 7 fb k k 1 1 k 7 第一次巨集替換 k k 1 1 k 1 7 第二次巨集替換 3 3 1 1 3 1 7 11 3 1 7 27 注意替換時一定不要忘記 所有巨集替換是在編譯之前的預處理模組完成的 此時還沒...

求問C語言

1全部這個是求十個數的最大最小值吧 如果問題是出在執行出的結果不對的話,那就是你忘記給 max和mix 賦初始值了,不賦初值的話其初始值就會不一定是什麼 so,在for迴圈之前加上 max 100000000 mix 100000000 應該能解決我提的這個問題。但是不知道你問的是不是這個問題?是嗎...

問兩c語言題的問題,問兩三個c語言題的問題

樓上對右結合的概念理解錯誤了,所謂右結合就有對應的左結合。例如,a b c,是個運算子,對於第一個 它的兩個運算元是a和 b c 那麼它是先和哪個結合呢,c語言標準定義了它是右結合的,所以它先與右邊的b c結合,而b c本身也是個表示式,所以要先計算b c,然後b c的結果再參與原來的計算。問幾道c...