那麼編譯器就在記憶體中開闢1個整型單元存放變數a,我們假設這個整型單元在記憶體中的位址是 0x1000;那麼記憶體0x1000單元中存放了資料10,每次我們訪問a的時候,實際上都是訪問的0x1000單元中的10.
現在定義:int *p;
p=&a;
當編譯器遇到語句int *p時,它也會在記憶體中給指標變數p分配乙個記憶體單元,假設這個單元在記憶體的編址為0x1003;此時,0x1003中的值是不確定的,(因為我們沒有給指標賦值),
此時指標指向位址是不確定的,所以指標定義時候應該初始化,即 int *p = null
。當編譯器遇到了p=&a時,就會在0x1003單元中儲存0x1000,請看,這就是說:(指標變數p代表的)記憶體單元0x1003存放了變數a的記憶體位址!用通俗的話說就是p指向了變數a。。
空指標是乙個特殊的指標值,也是唯一乙個對任何指標型別都合法的指標值。指標變數具有空指標值,表示它當時處於閒置狀態,沒有指向有意義的東西。空指標用0表示,c語言保證這個值不會是任何物件的位址。給指標值賦零則使它不再指向任何有意義的東西。為了提高程式的可讀性,標準庫定義了乙個與0等價的符號常量null. 程式裡可以寫 p = 0; 或者 p = null; 兩種寫法都把p置為空指標值。相對而言,前一種寫法更容易使讀程式的人意識到這裡是乙個指標賦值。
指標基礎知識
指標的基礎知識 一 空指標的定義方法 int p1 nullptr int p2 0 include int p3 null int c 0 int p4 c 此種方法是錯誤的,不能將int型變數直接賦值給指標,即使其值是0也不行這三種方法定義的空指標是等價的,只是第三種需要包含標頭檔案cstdli...
c和指標 指標基礎知識
1 記憶體和位址 2 指標初始化 3 指標變數的內容 4 間接訪問操作符 5 非法指標 null指標 1 記憶體和位址 指標是儲存的位址,比如0x0,0x1 0x2 可以這麼理解 指標可以狹義理解為記憶體位址,是存放記憶體位址的變數。網上或者書上,總是一段很多字數去表示指標說什麼,剛開始學習時候,看...
陣列和指標基礎知識
本節主要學習了陣列和指標 1.首先介紹陣列的概念 陣列 型別相同的數值集合 一般格式 int arr n 如例一。1.2.如何使用 首先用 for 迴圈初始化陣列 1.3數 組 名 的 含 義 arr 1 sizeof arr sizeof arr 0 分別為 陣列首位址加一 求陣列記憶體大小 求陣...