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

2021-10-05 12:36:30 字數 1881 閱讀 7542

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語言的道路上披荊斬棘!主頁置頂文章中有領取方式,你可以看一下

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

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

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

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

C語言 指標的算術運算

一 指標加法 1 指標 1 1 加乙個位元組 2的16進製表示 ox 00000002 20的16進製表示 ox 00000014 ox 0000140a 轉化為十進位制為 5130 2 加乙個單元格 直接arr 1 20 3 加整個陣列 沒意義,直接跳出了陣列 綜上指標 1表示加乙個單元格最為合適...