C語言二維陣列 int a N0是什麼意思

2021-04-21 03:03:37 字數 2974 閱讀 3670

1樓:匿名使用者

定義一個二維陣列a,有n*n個元素,全部初始化為0。

2樓:匿名使用者

就是定義了一個二維陣列,而他的行跟列都是n ,陣列的元素都是0.特別提醒一下,n必須是已知的整數···

3樓:匿名使用者

定義二維陣列a,初始化為0

n應該是個巨集定義

4樓:匿名使用者

有沒有說n的值啊 就這一句嗎?

c語言二維陣列定義是什麼,然後int a[1][2]是代表什麼意思?怎麼用這個二維陣列

5樓:匿名使用者

c語言二維陣列定義的一般形式是:型別說明符 陣列名[常量表示式1][常量表示式2]

int a[1][2]的意思是,定義了一個int型別的,陣列名為a的,具有1行2列的陣列

你可以把這個二維陣列想像成一個**,這個**有1行2列,每個格子中可以放入一個int型資料。

陣列使用就是用陣列下標來訪問陣列中的元素,比如a[0][1]=5,就是把第1行的第2個元素賦值為5。

c語言二維陣列下標負數是什麼意思~? 5

6樓:一口沒水的枯井

1 在c語言中,二維陣列的下標可以為負數,表示指向前面的元素

2 對於二維陣列 int arr[m][n]來說,arr[i][j]的地址是 (*arr)+i*n+j,其值是*((*arr)+i*n+j)

3 分析本題

陣列a在初始化時後,其元素按照在記憶體中的排列順序依次為1,2,3,0, 4,5,6,0, 0,0,0,0

陣列a的第一個元素的地址為*a(或&a[0][0]或a[0]),記為p,

則,a[2][-2]的地址就是 p+2*4+(-2) 即p+6,即指向第7個元素,其值為6;

同理,a[1][3]的地址為p+1*4+3,即p+7,即指向第8個元素,其值為0

所以i的值為6

7樓:窗前過馬

在這裡這不是一個錯誤,但是一般不會寫這樣的程式。

首先應該理解語言中陣列的儲存結構。對二維陣列,在記憶體中實際是按行儲存的,也就是說二維陣列中元素是按行依次儲存在一片連續的的空間中。

取某個元素時,是先通過計算這個元素的地址,再通過計算得來的地址取得該元素的。依然以二維陣列為例,設陣列a[rows][cols](即有rows行,cols列),當訪問a[i][j]的時候,是先通過i,j的值計算得到要取的元素的地址,再在這個地址上取得該值的。計算地址的方法是:

a + i*cols + j, 這裡a就是陣列名,它實際存放著上是這個陣列的每一個元素的地址。

因此,對於您的問題, 可能計算得到a[2][-2]的元素地址為 a+2*4 + (-2) = a + 6 = a + 1*4 + 2

它的地址與元素a[1][2]的地址一樣,也就是說a[2][-2]與a[1][2]實際上是同一個元素。因此輸出6,這是正常的現象。

8樓:匿名使用者

著因該是 錯誤的``````

陣列的下標是從0開始的`````

不可能有 -2;

有什麼不懂 你可以給我簡訊```

9樓:匿名使用者

我想那是一個錯誤,這是明顯的陣列越界~ 學這麼長時間c語言,我從來就沒有見過~

10樓:5舍

確實很奇怪,應該是錯的.

11樓:匿名使用者

應該是寫錯了吧。沒見過這樣的

c語言中二維陣列如 int a[2][2]; 對於這個二維陣列 a,a[0]都分別表達什麼意思?

12樓:匿名使用者

這個是一個二維陣列,最外

面的括號就是總的資料 裡面的每個括號都是下標中1的內容,舉個例子 你上面的 哪樣的話 那就是a[0][0] = 1; a[0][1]=2; a[0][2] 沒賦值 a[1][0] = 4 ; a[1][1]= 5;其他的都沒賦值

13樓:匿名使用者

a代表的是整個二維陣列的地址,a[0]表示的是二維陣列第一行的地址,其實都是二維陣列第一行第一個元素的地址,但是由於表徵的形式不一樣,所以含義不太相同

14樓:匿名使用者

a代表該二維陣列的開始地址,a[0]代表這個二維陣列的第一維的開始地址。

c語言中,定義了二維陣列a[n][n],當呼叫函式fun(a)時,形參為什麼不能是**a,只能是(*a)[n]或a[][n]?

15樓:墨派

你的fun(a)中a是什麼資料型別?

無論哪種資料型別,**a這種資料型別不存在,你自然不能把它當作形參了!

16樓:神魔靈樂

**a 表示一個指向指標的指標標量a,後兩種是函式傳參的形式,是語言定義的規範。可直接將a定義為一個指標型別,直接傳參 。如

typedef a[n][m] *p2_darray;

p2_darray;

fan(p2d);

17樓:帥7嘿嘿

a表示是陣列a的首地址,(*a)[n]表示二維陣列中的一維的首地址如:a[3][3]中a[3]表示a[3][0]

*a表示陣列首地址,**a就不代表陣列中的地址了。

c語言中二維陣列中&a[0][0]=a[0][0]嗎

18樓:文化廚子

不相等。

&a[0][0]是取第一個元素的地址。

a[0][0]是取第一個元素的內容。

你把a[0][0]看成一個。比如a

&a 肯定不等於a,型別不一樣的。

19樓:匿名使用者

肯定不等啊。前面是二維陣列的首地址,後面是一個具體的值。沒辦法相等的....

c語言二維陣列下標表示方法,C語言二維陣列下標表示方法

下標就是在裡的,他是重0開頭的。具體表示如下 int a 5 5代表a最後個陣列裡的元素個數 是初學者吧!要努力喲!int n float a n n 都是從0開始到n 1 c語言二維陣列下標的值怎麼算 陣列的下標是從0開始,由於陣列是連續儲存的,你可以想象用一個4x4的 來表達這個陣列,然後把fo...

c語言中二維陣列行指標是什麼,C語言中二維陣列行指標是什麼

就是指向每一行的指標,比如說二維陣列a 2 3 a 0 代表的是二維陣列第零行的首地址相當於 a 0 0 a 1 代表的是二維陣列第一行的首地址相當於 a 1 0 a 0 1代表的是二維陣列第零行,第一列的地址相當於 a 0 1 行指標其實就是二級指標,也就是說它指向一個一維陣列,int a 2 3...

c語言判斷有二維陣列a4a

a 2 意思是第三行元素的首地址即a 2 0 的地址,a 2 3 意思是第三行元素首地址加3再取值,第三行元素首地址加3就是第三行第四個元素的地址,在取值就是a 2 3 的值了。c語言二維陣列 a 3 4代表什麼 char p是一維的,str是2維的,p str,二者不匹配。str 0 是一維的,與...