C語言指標運算

2021-10-03 03:08:01 字數 1089 閱讀 3196

int a=

;int

*p = a;

#include

intmain()

;int

*p = a;

printf

("p = %p\n"

,p);

printf

("p+1 = %p\n"

,p+1);

printf

("*p = %d\n"

,*p)

;//*p <==> a[0]

printf

("*(p+1) = %d",*

(p+1))

;//*(p+1) <==> a[1]

return0;

}

輸出:

p = 000000000062fe00

p+1 = 000000000062fe04

*p = 1

*(p+1) = 2

如果指標不是指向像陣列這樣的連續空間,則p+1運算沒有意義。 推論

指標除了可以做加乙個整數,還可以:

#include

intmain()

;int

*p =

&a[0];

int*p1 =

&a[4];

printf

("p = %p\n"

,p);

printf

("p1 = %p\n"

,p1)

;printf

("p1-p = %d"

,p1-p)

;return0;

}

輸出:

p = 000000000062fdf0

p1 = 000000000062fe00

p1-p = 4

兩個指標還可以做比較:

*p++可以分解為兩行**:

*p;

p++;

++運算子優先順序高於*,要先做p++,而p++的運算結果是+1之前的。所以整句**的意思是先取初p指標所指的值,然後p再移到下乙個位置。

C語言 指標運算

p a 將變數位址賦值給指標 p array 將陣列位址賦值給指標 p array i 將陣列元素賦值給指標 p1 p2 將指標位址賦值給指標 include 引用函式庫 void main f0889414 f0889414 f0889414 10 10 10 p 1 和 p 意義不相同,前者沒有...

指標運算 c語言

指標運算 加法 每一次加1 就是所指向的首位址加乙個sizeof 型別 int a 10 int p a p i a 0 i 減法同上 但是同樣要注意範圍的情況 值得注意的是 也有兩個指標做減法 但是兩個指標相減的意思是位址的差值 sizeof 型別 的優先順序很高 但是沒 高 p 常用於陣列的的連...

C語言指標 指標的運算

include int main void 執行這段 會出現錯誤嗎?如果出現錯誤,是什麼錯誤?分析 printf一種常規的用法就是printf please input a data 這種用法相信很多人都使用過,但是將這種用法分析一下,這樣的用法printf函式接收到的引數是乙個常量字串的首位址,然...