用陣列定義的變數和指標定義的變數名長度不同

2022-10-27 04:45:21 字數 908 閱讀 5751

1樓:金色潛鳥

sizeof(x) 看上去像函式,實際上 sizeof() 不是函式,它是 c/c++語言裡的 「運算子」。

這是理解 sizeof 的關鍵。

按 sizeof 的規定,操作物件 x 可以是 變數 型別, 也可以是 變數名。

sizeof 計算結果 得到 這個 變數 或 這種型別 佔用了 多少 個 位元組 的記憶體。

例如:sizeof(float); sizeof(struct student); 操作物件 是 變數 型別. 一是float, 另一是結構。

現在我們的情況是:

sizeof(a), sizeof(q), 操作物件 是 變數.

計算 變數名 叫 a 的 這傢伙 佔用 多少 個 位元組,

計算 變數名 叫 q 的 那傢伙 佔用 多少 個 位元組。

不能理解為 「是地址」,也不需要知道 陣列各元素 有值無值,指標指哪兒了。

為啥是20 4呢?

20 = 5 * sizeof(int) = 5 * 4 = 20

4 = sizeof(unsigned long int).

2樓:匿名使用者

這是c語言的規定,sizeof(陣列) 將是陣列的單元的總位元組數;

sizeof(指標),將是指標地址的位元組數;

這是規定而已,不管你想通想不通,其實這種規定更方便,尤其對陣列這樣處理。

記住這個規定,就可以了。

3樓:匿名使用者

int的長度是4。

int[5]就是5個int排一起,長度20,

int* 是一個指向int地址的指標,長度4.

4樓:匿名使用者

因為a不僅是一個地址,同時它表示的是記憶體中5個int的陣列

c語言怎麼用變數定義來陣列元素個數

c語言中陣列的維數表示陣列中元素的個數,在常規陣列中維數是必須要指明的,如果沒有指明,則必須在初始化列表中給定初始值,編譯器通過初始化列表來確定陣列的維數。int a 上面的 雖然沒有指明陣列的維數,但是編譯知道陣列a的維數是4 只有4個元素 要實現用變數定義陣列的元素個數即維數,可以使用mallo...

如何定義指向函式的指標陣列,如何定義一個指向函式的指標陣列

這個用typedef可以完成 先定義一個函式指標的型別 typedef void pfun 然後用這個型別pfun定義一個陣列 pfun ptr 5 裡的數字是陣列元素的個數,依情況而定 這兒用5做例子 這樣ptr就是一個指向函式指標的陣列。對於 把一個指標強制定義 這我還沒聽過這個說法,只聽過把指...

自變數和因變數的定義是什麼

二者的定義分別為 1.自變數 independent variable 一詞來自數學。在數學中,y f x 在這一方程中自變數是x,因變數是y。將這個方程運用到心理學的研究中,自變數是指研究者主動操縱,而引起因變數發生變化的因素或條件,因此自變數被看作是因變數的原因。自變數有連續變數和類別變數之分。...