C 靈魂 指標

2021-10-23 23:25:18 字數 1481 閱讀 3716

指標與一維陣列

計算機將記憶體以單個位元組為單位分開,並對每個位元組進行唯一性編號,那麼這個編號就是位址。

首位址,一段記憶體空間中第乙個儲存單元的位址【不是第乙個變數】

定義指標變數:資料型別 * 變數名    /*表示定義乙個變數(指標變數)指向該資料型別*/

int a = 10;

指標變數賦值 p = &a; /*p儲存a的位址*/

指標訪問變數值 int b = *p; /*訪問p中儲存位址上的值*/

指標變數用來存放位址的變數

記憶體大小為4位元組

在定義指標變數時的*只是表明該變數是個指標變數,沒有實際功能【為要區別指標變數解引用符號】

野指標不能明確指向的指標變數,即儲存的位址是不確定的

為避免可以定義指標時,讓其指向null;即 int *p = null;

空指標 【記憶體動態分配】

不能明確指向的記憶體要儲存的資料型別,即void*

指標變數的運算(+,-,++,–)

指標變數的運算只是指標的偏移,指標之間的運算沒有意義

指標變數的加減,是以該指標指向型別的空間單位進行偏移的【不是每次偏移都只是乙個位元組】

下面是指標陣列取值的三種**方式:

第一種方式看著和平時的陣列索引遍歷**相同,其實是不同的,p[i]就相當於*(p+i)。

後兩種方式其實是一樣的,因為+號的優先順序低於*號,所以要用(),根據首位址偏移來獲取每個位址對應的值。

#include

using

namespace std;

intmain()

;int

*p = array;

//相當於int *p1 = &array[0]

int*p1 =

&array[1]

; cout<

//陣列名相當於陣列首位址

cout<<

*p<

//返回陣列首位址上的值

cout<<

*p1<

//返回陣列首位址偏移4個位元組上的值

指標 C語言的靈魂

1.2指標的型別 指標的型別 去掉變數名,剩下的的就是指標型別 int p int 整形指標 int arr 3 int 3 整形陣列指標 int p int a,int b int int a,int b 返回值為整形的函式指標 int arr 4 int 4 指標陣列,指向陣列的指標 指標所指向...

C語言之靈魂 指標學習

指標是c語言的難點 稱之為c語言的靈魂一點也不為過,不過指標用好了能事半功倍,用不好bug滿天飛。一 指標的概念 指標也是變數只不過是特殊的變數,指標的值是另乙個變數的地 也就是變數所在的記憶體位址 指標的定義 在變數名之前加 號即可。如 char point 二 指標的應用 1.指標與普通變數 指...

C語言的靈魂 指標基礎

一 什麼是指標 1 指標的定義 位址形象化為指標,通過指標能夠找到記憶體單元。指標變數就是位址變數,變數的值為指標。指標其實是我們將變數名和位址的關係顯化 獨立 出來的一種形式,是為了我們更加方便的讀取資料和進行操作而設計的,是c語言的靈魂。解釋 int a printf d,a 如上,我們通常是通...