C語言中陣列元素的下標可不可以是陣列元素,另外

2021-03-26 17:47:11 字數 1461 閱讀 4279

1樓:無聲的硝煙

c語言程式執行時,陣列的存在形式是記憶體中的一塊連續地址空間。而訪問陣列元素時,計算機會將下標做為空間首地址的偏移量來進行定址,所以當然可以是任何整形數。

比如int array[10],array的地址是0x7fffff00,那麼在訪問array[3]時,計算機是這樣計算的:

每個整形數大小為4個位元組,所以用array的地址加上3乘以4,得到0x7fffff0c,那麼從0x7fffff0c到0x7fffff0f這4個位元組的值就是array[3]的值。

所以無論傳入的下標是什麼,理論上都可以計算得到一個地址,但是這個地址不一定是有效的。如果地址無效,就會發生段錯誤(segmentation fault),也即陣列越界/地址訪問越界。現在的編譯器會認為只要下標是個整型變數,就是可以的,但是執行的時候作業系統仍然會進行監測,否則會影響其他程式的執行。

比如說a = , b = ,那麼b[a[3]] = b[5]=6,這個是可以允許的。

2樓:匿名使用者

當然可以,只要能夠被解釋成整數的都可以

c語言中,陣列中,陣列必須是陣列名常量表示式,對於陣列中元素的下標,下標能不能是變數?如圖,書上沒

3樓:我個去又被註冊

可以的,但是注意這個變數的取值範圍——在這個例子裡,得確保 i 是0到9的整數回,不然會出錯。答

另外,宣告陣列不能用變數的原因是,陣列一旦宣告就確定了(記憶體安排好了)。下標就可以用變數,呼叫的時候就顯得更方便靈活。

4樓:bbk臨兵

下標當然可以是變數,甚至還可以是表示式。

c語言中,定義陣列和引用陣列時,其陣列的下標的資料型別分別允許是什麼?

c語言中,陣列元素的下標是從什麼開始的

5樓:匿名使用者

從0開始

比如a[100] 就是0-99的下標

6樓:大狂哥灬

比如說a【4】是從下標0開始到3結束

a【n】就是從0開始到n-1結束

c語言中陣列元素下標的上下限是什麼?

7樓:金色潛鳥

上下限就是 最大允許 下標

數值 和 最小允許 下標數值。

int c[5]; 允許的下標值是 0,1,2,3,4所以 最大下標 4,最小下標 0

也就是 可以 用 到 c[0] 和 c[4];

不允許用 c[5],c[6]...

不允許用 c[-1],c[-2]...

8樓:匿名使用者

例題:(1)在c語言中,若定義一個一維陣列int c[5];則c陣列元素下標的上限是_4_,下限_0_

其實c語言是不檢測下標是否越界的。你寫c[7],c[-2]都不會報錯

c語言中可不可以直接在函式首部直接給引數賦值

不明白你的意思 是不是類似於這樣 int hello char a,int i 4,int m 9 這樣在c語言中是不可以的,這是c 的概念,預設引數,使用方法如下 以上面的hello函式為例 hello n 預設i 4,m 9。hello n,5,23 這裡在函式中i 5,m 23.就是說,如果呼...

可不可以貸款,可不可以貸款

可以申請辦理銀行小額貸款。小額貸款申請條件 1 為年滿十八週歲中國大陸居民 2 有穩定的住址和工作或經營地點 3 有穩定的收入 4 無不良信用記錄,貸款用途不能作為 賭博等行為。5 銀行要求的其他條件。小額貸款辦理流程 1 向當地銀行或者貸款機構提交申請 2 準備貸款所需的各種資料 3 面籤銀行或貸...

這樣的女生可不可以交往,這樣的女孩可不可以繼續交往

你喜歡她就去追嘍,真心喜歡一個人,是不該計較她的過往的,祝你們能在一起,幸福美滿。這要看你的了,如果在不影響雙方學習的基礎上而雙方又互有好感,可以考慮交往,至於家庭背景和她以前處過三個物件我認為這不是問題,不管是她的問題還是男生的問題,只要你真心喜歡她,就應該能夠包容她。人孰無過,只要改了就ok了!...