4 指標運算 每日乾貨丨C語言指標的算術運算

2021-10-14 20:02:51 字數 1942 閱讀 2243

c 指標是乙個用數值表示的位址。因此,您可以對指標執行算術運算。可以對指標進行四種算術運算:++、--、+、-。

ptr++
在執行完上述的運算之後,ptr 將指向位置 0x1004,因為 ptr 每增加一次,它都將指向下乙個整數字置,即當前位置往後移 4 位元組。這個運算會在不影響記憶體位置中實際值的情況下,移動指標到下乙個記憶體位置。如果 ptr 指向乙個位址為 0x1000 的字元,上面的運算會導致指標指向位置 10x001,因為下乙個字元位置是在 0x1001。

為了方便,我們引入步長的概念,步長等於指標所指向的變數的記憶體大小,步長代表著指標每走一步所跳過的位元組數。

下面是一些常用的型別的步長:

//基本資料型別

cout << "基本型別" << endl;

遞增乙個指標

#include const int max = 3;

int main() ; int i, *ptr;

/* 指標中的陣列位址 */

ptr = var; for (i = 0; i < max; i++)

return 0;

}

當上面的**被編譯和執行時,它會產生下列結果:

0x8ffbfc-0x8ffbf8==4,由此可見整型指標步長為4個位元組

遞減乙個指標

同樣地,對指標進行遞減運算,即把值減去其資料型別的位元組數,如下所示:

#include const int max = 3;

int main() ;

int i;

char *ptr;

/* 指標中最後乙個元素的位址 */

ptr = &var[max - 1];

for (i = max; i > 0; i--)

getchar();

return 0;

}

當上面的**被編譯和執行時,它會產生下列結果:

0x4ffe12-0x4ffe11==1,由此可見字元型指標步長為1個位元組

指標的比較

指標可以用關係運算子進行比較,如 ==、< 和 >。如果 p1 和 p2 指向兩個相關的變數,比如同乙個陣列中的不同元素,則可對 p1 和 p2 進行大小比較。

#includeusing namespace std;

//@c語言plus

const int max = 3;

int main()

; int i, *ptr;

/* 指標中第乙個元素的位址 */

ptr = var;

i = 0;

while (ptr <= &var[max - 1])

return 0;

}

當上面的**被編譯和執行時,它會產生下列結果:

總結我們概括一下:

對於零基礎想要更輕鬆學好c/c ++開發語言,這裡也給大家準備了一套系統學習教程資源,從最零基礎開始的,幫助大家在學習c語言的道路上披荊斬棘!

每日乾貨丨C語言指標的算術運算

c 指標是乙個用數值表示的位址。因此,您可以對指標執行算術運算。可以對指標進行四種算術運算 ptr 在執行完上述的運算之後,ptr 將指向位置 0x1004,因為 ptr 每增加一次,它都將指向下乙個整數字置,即當前位置往後移 4 位元組。這個運算會在不影響記憶體位置中實際值的情況下,移動指標到下乙...

c語言指標詳解 每日乾貨丨C語言指標詳解

問題 指標是什麼?簡單來說就是我們使用指標變數,通過這個指標變數訪問該數值 請看下面的示例 int num 7 建立指標變數int p num printf d n p 在上述 中,可以看出指標變數宣告的方法及如何建立指標 指標變數的宣告 宣告指標時型別一定要相同,避免一些錯誤 型別 指標變數名 變...

keli4 指標運算 C語言指標 指標運算超詳細

很多童鞋在接觸c語言使用指標的時候,總是本著乙個原則 能不用就不用!所以對於指標的認識也難免有所侷限,所以禁停啊我們就來普及乙個 冷知識 指標運算。其實這樣的東西對於一些程式設計 湖早已經不是什麼秘密,只是說對於很多小萌新而言,覺得這樣的操作不可思議,高大上。其實跟其他的很多知識一樣,都是 難者不會...