C語言,關於陣列名作為地址的問題

2021-05-14 14:02:52 字數 2331 閱讀 3228

1樓:

a+1——下標為bai1的那個元素的地址du。

&a+1——越界了,它zhi是最後一個元素後面dao那個地址版,性質是「行權地址」。

&a[0]+1——這和a+1一樣喲!

b+1——下標為1的那一行的"行地址"。

&b+1——這個二維陣列最後一個元素後面那個地址,性質是「整個陣列地址」。

&b[0]+1——這和b+1一樣。

&b[0][0]+1——就是b[0][1]的地址。

b[0]+1——下標為[0][1]的那個元素的地址。

&a[0]++是錯誤的。道理很簡單,a[0]是常指標,不能進行++、--操作。

供參考。

c語言中陣列名代表陣列首地址,它的值在執行期間可以改變嗎?

2樓:文化廚子

1、陣列的首地址,在同一計算機上,正常執行的情況下,這個地址是不會變的。

2、陣列的首地址,在不同的計算機,不同的系統上,一般情況下這個地址會變的。

3、現代作業系統的記憶體管理使用的是虛擬記憶體技術,一般來說,習慣性的講記憶體看作是一個大的位元組陣列,每一個位元組都有一個記憶體地址,本身虛擬記憶體地址的變化在同一臺計算機上基本不大,但是實際的實體記憶體地址,變化肯定是很大的。問題中所說的陣列的首地址,本質上是虛擬記憶體地址,因此才有1和2中的描述。

3樓:匿名使用者

陣列有兩種定義方法:

1.int a;

2.int *a;

這兩種差不多是等價的,也就是說,2中的a=1中的a,因為a就是一個地址。

比如在1中訪問元素是a[5];

那麼在2中訪問元素是*(a+5);

這兩種訪問是等價的!

要好好理解指標的定義才能弄明白,因為要記住,陣列名就是一個指標,指標的內容是陣列第一個元素的地址!

你說的argv++在這裡是a++,就是相當於在陣列中的a[i++];

也就是說a[i++]=*(a++),可以上機實踐一下

4樓:匿名使用者

比如:a[5]

其中a就代表代表首地址了

但是a++就是說他的下一個地址了

絕對不是說讓首地址發生變化了.

5樓:匿名使用者

任何陣列的陣列名 都可以進行 argv++ 的操作吧陣列名代表的 是一個在陣列初始化時指向陣列首地址的一個指標argv++ 不過是把這個指標指向的地址 移向記憶體中的下一個地址就這樣而已

6樓:匿名使用者

陣列名不能改變(是指標常量)

argv不是陣列名。比如宣告為如下形式 char * argv,argv是指向字串陣列的指標。

c語言裡 陣列名是地址嗎

7樓:匿名使用者

是地址,可以稱作陣列地址,也可以看成第一個元素的地址。舉個例子:

#include

int main(int argc, char *argv);p = array;

printf("p[2] = %d\n", p[2]);

return 0;

}這個程式輸出結果如下:

p[2] = 3

程式的第六行 p=array 就是把陣列地址賦值給地址變數。

c語言:關於二維陣列的指標問題, 對於一維陣列來說,陣列a[i]的陣列名a就是陣列首元素的首地址,

8樓:匿名使用者

二維陣列,就是指陣列元素為 陣列 的 一維陣列,就按一維陣列的方式版去理解就可以了。

如:權int a[5][10] ; 可以看成 type b[5] ; type的型別為int [10] ;

陣列a[0],a[1],a[2]。。。都是一維陣列,也就是一維陣列的首地址

對應的指標方式為:*(a+0), *(a+1),*(a+2)....

如有問題,再追問!

9樓:匿名使用者

首先二維數du組是不是可zhi以看成幾個一維陣列dao的結合

比如a[3][4]是不是代表3個一維專陣列,一維陣列的大小是4那麼屬第一個陣列的陣列名是a[0],然後a[0]這個陣列裡面有四個元素分別為,第二個陣列名是a[1],以此類推

二維陣列相當於也是一個陣列,裡面裝的都是一位陣列a[3] = ,這裡的a[0]-a[3]是三個一維陣列,那麼*(a+i)就是a[i],a[i]就是一維陣列名,陣列名是不是就是地址,那麼*(a+i)就是地址,*(a+i)+j 是不是等價於a[i]+j ,a[i]我們剛才說了是一維陣列名,也就是地址,一個地址加上j是不是還是地址呢?*(a+i)+j = &a[i][j]的

c語言中,整型陣列的陣列名錶示指向該陣列的元素的指標,那麼字元陣列的陣列名也表示指向元

是的,陣列名都是表示指向第一個元素的指標,也就是說陣列名是一個指標,但是要注意,陣列名這個指標是不能修改的。在c語言中陣列名是一個什麼的常量 陣列名是代表該陣列的首地址且符合識別符號書寫規定的變數識別符號。整個陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c 10 設陣列c的首地址...

關於c語言陣列的運算,關於C語言陣列的運算。

首先你可以進行單步測試自己看看能不能學習到過程 程式設計師以後寫程式排錯 要學會自己單步測試找問題 過程很簡單 你定義了一個1維陣列 陣列長度為10 從a 0 a 9 進行for迴圈計算 i 9 a 9 10 9 1 同理 a8 2 a5 5 a2 8 所以輸出 a2,a5,a8 分別就是852 希...

關於C語言二維陣列的問題,關於c語言二維陣列的問題

include void main for i 0 i 3 i for i 0 i 3 i for j 0 j 7 2 j printf change after n for i 0 i 3 i 1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 217...