C語言指標解析

2021-09-02 15:02:33 字數 1428 閱讀 8233

我們通常把指標變數叫做指標,準確的說,這樣的理解是錯誤的。首先我想在這裡明確一下指標與指標變數是兩個概念。

指標變數:

指標是一種具有特殊意義的整型數,指標不能存放在一般的整型變數中,必須存放在專門指標的變數中,這類變數就是指標變數。

int i = 10;

int *p = &i;

return 0;

在這段**中 i 是乙個整形變數, p 是乙個指標變數,存放著 i 的位址,&i 是乙個指標。

int* p

char* p

double *p

...

int i=10;

int *p=&i;

在上面這段**中,指標變數p中存的是整形變數i的位址,我們可以通過 *p來讀取到i的內容。

通過這段**我們可以看出,指標的型別決定了,對指標解引用的時候有多大的許可權(能操作幾個位元組)。 比如: char* 的指標解引用 就只能訪問乙個位元組,而 int* 的指標的解引用就能訪問四個位元組。

我們把陣列型別換成char試試:

結果還是4,由此我們可以得出乙個結論:

指標-指標所得出的結果是兩指標之間元素的個數

這裡要注意指標-指標的前提條件是指向同一塊記憶體空間
int i=10;

int *p=&i;

int **pa=&p;

在這段**中,pa就是乙個二級指標,其內容為p的位址,對pa進行解引用操作可以找到p中的內容,即i的位址,在對齊進行解引用操作可以拿出i的值,也就是說,*p和**pa以及i的值是相同

C語言 const修飾指標解析

這種例子在我們平時程式設計時可能會很少用,但是在面試時被問的可能性就很大了。用const修飾指標,常見的情況可以分為四種 1.const int p p 可變,p 指向的物件不可變 2.int const p p 可變,p 指向的物件不可變 3.int const p p 不可變,p 指向的物件可變...

C語言 陣列 下標與指標 效率解析

以字串拷貝函式為例,解析陣列中下標與指標的效率情況。指標的效率至少和下標相同。原因參考c下標的實現原理,注意編譯器差異,因為部分編譯器針對下標設定了特殊彙編指令,不做考慮 define size 50 int x size int y size int i int p1,p2 1 使用下標方案 vo...

C語言指標

指標變數是包含記憶體位址的變數,它指向記憶體中的一塊區域,通過指標的值,可以間接訪問到相應的記憶體單元的資料,並做相應的修改。1 指標的定義和簡單使用 定義乙個指標變數和定義一般的變數類似,只需在變數名前面加乙個 對乙個指標變數賦值可以用取位址符 來獲取到乙個變數的位址,如果要獲得指標指向的記憶體區...