指標陣列 陣列名稱和陣列名稱的區別

發布 時尚 2024-03-01
4個回答
  1. 匿名使用者2024-02-06

    int *a 定義指標變數。 a 是指向 int 變數的指標變數,稱為 int 指標。 * 表示指標的型別。 指標變數名稱是 a 而不是 *a。

    int 陣列。

    a 陣列的名稱是第乙個陣列元素的位址,與陣列的第乙個位址相同,通俗易懂。

    a 表示陣列的第乙個位址,與上面的數字相同,但含義不同。

    在記憶體中,A+1 是下乙個元素。

    A+1 是乙個陣列。

  2. 匿名使用者2024-02-05

    陣列名只在原始碼中有意義,所以它們只在源環境或編譯時才有意義(只有編譯好的可執行程式中的位址),這時編譯器會為所有資料實體建立乙個對映表“identifier-address”,包括變數、陣列、物件、結構體、函式體,這樣在遇到變數時就可以轉換為位址, 同時,方便除錯跟蹤。

    如果在除錯模式下編譯,這些表和其他額外資料將作為除錯引數包含在目標程式中,而如果編譯為發布版本,則不包括此資訊。

    所以從編譯的角度來看,任何變數名都是指標,所以指標陣列名當然也是指標,而最簡單的int a,“a”本身就是指標。 在訪問任何變數時,編譯器會安排首先獲取位址,然後根據變數型別(即隱式轉換)決定是否進一步獲取該值。

    例如,在訪問乙個公共變數時,編譯器的預設操作是取值,所以當int b=a時,它先取a和b的位址,然後把a的值寫入b的記憶體中,如果要獲取a的位址,需要顯式轉換int *p=&a;,這樣編譯器就可以獲取 a 的位址並將其直接分配給 p,而無需進一步操作。 如果 a 是乙個陣列,我們會遇到 int *p=a; 編譯器獲取位址後,直接給 p 賦值,無需進一步操作。

    摘要: 1. 資料實體:源中的所有變數、陣列、物件、結構和鍊表。 函式體,所有可訪問的資源。

    2. 任何資料實體都有乙個位址。

    3.編譯器在訪問資料實體時,必須首先找到它,即必須獲取位址。

    4.普通變數的值和陣列的位址是編譯器設計的隱式轉換。

  3. 匿名使用者2024-02-04

    這些概念都離不開RAM,所以先說記憶體。

    記憶就像一棟樓,裡面有很多很多小房間,每個房間都有乙個門牌號,就是位址。 位址的功能是通過這個門牌號找到對應的房間。

    指標是把位址放在多個房間(這個東西很大,需要很多房間才能容納森生),通過指標得到放位址的地方就可以找到目標房間(記憶體)。

    陣列意味著我需要乙個可以放置n個位址或值的連續房間(引用型別儲存位址,值型別直接儲存值),陣列名稱的變數儲存這些連續房間的第乙個彈簧帶的位址。

    純手工打,謝謝。

  4. 匿名使用者2024-02-03

    朋友爛答案]:a,c

    陣列指標只是乙個指標在記憶體中佔據儲存空間的指標變數,而指標陣列是以陣列形式存在於記憶體中的多個銀指標變數,佔據多個指標的儲存空間。

相關回答
16個回答2024-03-01

指標陣列。 首先,它是乙個陣列,陣列的元素都是指標,陣列占用的位元組數由陣列本身決定。 它是“儲存指標陣列”的縮寫。 >>>More

8個回答2024-03-01

二維陣列位址 - >行位址 - >列位址(變數位址) - >變數值,或為您摘錄描述。 >>>More

10個回答2024-03-01

字串和字元陣列之間沒有區別。

char *a;它是指標。 >>>More

5個回答2024-03-01

陣列不允許向它們新增值,您可以將它們放在列表中。 >>>More