陣列和函式

2021-08-15 02:31:31 字數 1168 閱讀 2007

1.可以使用陣列後面第乙個元素的位址嗎?

可以使用陣列後面第乙個元素的位址,但是不可以檢視該位址中的值

2.陣列通過引數傳遞給函式時,可以通過sizeof得到陣列的大小嗎?

不可以,當陣列作為函式的引數時,你無法在在程式執行時通過陣列引數本身告訴函式該陣列的大小,因為函式的陣列引數相當於指向陣列第乙個元素的指標。

3.指標或帶下標的陣列名哪一種可以更好的訪問元素?

使用指標訪問更好

4、可以把另外乙個位址賦給乙個陣列名嗎?

不可以。陣列名不能被放在賦值運算子的左邊(它不是乙個左值,更不是乙個可修改的左值)。乙個陣列是乙個物件,而它的陣列名就是指向這個物件的第乙個元素的指標。給陣列名賦值是毫無根據的。乙個指標的含義是「這裡有乙個元素,它的前後可能還有其他元素」,乙個陣列名的含義是「這裡是乙個陣列中的第乙個元素,它的前面沒有陣列元素,並且只有通過陣列下標才能引用它後面的陣列元素」。因此,假如可以使用指標,就應該使用指標。

5、為什麼用const說明的常量不能用來定義應該陣列的初始大小?

並不是所有的常量都可以用來定義乙個陣列的初始大小,在c程式中,只有c語言的常量表示式才能用來定義應該陣列的初始大小。

乙個常量表示式的值在程式執行期間是不變的,並且是編譯程式能計算出來的乙個值。在定義陣列的大小時,你必須使用常量表示式。在c++中會增加編譯程式的負擔,而c編譯程式沒有這種負擔。

6.在任何語言中,陣列的下標都是從0開始嗎?

在c語言中,陣列的下標是從0開始的。在其他一些語言中,情況有所不同,例如,basic語言中陣列a[max]的元素是從a[1]到a[max],在pascal語言中則兩者皆可。

7.陣列作為引數傳遞給函式時,可以通過sizeof得到陣列的大小嗎?

不可以。一般而言,人們通常採用以下倆種方法:

(1)將陣列和表示陣列大小的值一起傳遞給函式

(2)引入某種規則來結束乙個陣列。

8.指標或帶下標的陣列名都可以訪問元素,哪一種更好?

與使用陣列相比,使用指標能使c編譯程式更輕易地產生優質的**。此外,使用指標要比使用陣列快兩倍。

9.可以把另外乙個位址賦給乙個陣列嗎?

不可以。陣列名不能被放在賦值運算子的左邊(它不是乙個左值,更不是乙個可以修改的左值)。

10.array_name和&array_name有什麼不同?

前者是指向陣列中第乙個元素的指標,後者是指向整個陣列的指標。

陣列和函式

1,陣列如何作為引數傳遞?陣列作為引數傳遞給函式和將指向陣列中第乙個元素的指標傳遞給函式是完全等價的,將陣列作為引數傳遞給函式時可採用值傳遞和位址傳遞 前一種需要完整複製初始陣列,很安全,後一種則速度較快。2,結構體位元組對齊的細節和具體編譯器實現相關,但一般而言滿足三個準則 1 結構體變數的首位址...

陣列和函式陣列

1.首先看一下函式,每個函式的函式名表示的是函式的入口位址,簡單看一下,如下圖 1 include stdafx.h 2 3 include stdio.h 4 include stdlib.h 5 6void test void 7 1011 int main void 12 執行結果如下 2 函...

陣列指標和指標陣列 函式指標和指標函式

一 陣列指標與指標陣列 1,指標陣列 所謂指標陣列,就是指標組成的陣列,即陣列的元素為指標 int pa size size為元素數目,元素的值為int型別的指標 2,陣列指標 所謂陣列指標,就是指向陣列的指標,即其是乙個指標,指向陣列。int pa size size為陣列的元素數目,pa指向乙個...