C語言指針可以相減嗎?為什么?
4 回答

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
如果兩個指針向同一個數組,它們就可以相減,其為結果為兩個指針之間的元素數目。仍以本章開頭介紹的街道地址的比喻為例,假設我住在第五大街118號,我的鄰居住在第五大街124號,每家之間的地址間距是2(在我這一側用連續的偶數作為街道地址),那么我的鄰居家就是我家往前第(124-118)/2(或3)家(我和我的鄰居家之間相隔兩家,即120號和122號)。指針之間的減法運算和上述方法是相同的。
C 語言指針怎么理解?
你可以把它想象成一條無限長的紙帶。紙帶上邊有一個個的小格子,每個小格子正好是一字節,里邊能夠存放一個數字。計算機的工作就是對這些小格子里的數字做處理。雖然你在電腦上能夠看視頻、聽音樂,但這些東西本質上都是存在內存這條紙帶上的數字。

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
同類型的指針可以相減,其結果是兩個指針所指向地址間相差的這個類型元素的個數,如果是高地址的減低地址就是正數,否則就是負數
比如int a[100], *p, *q;
p = &a[10];
q = &a[22];
那么q - p = 12,就是兩者之間差了12個元素,q在后(高地址)
p - q = -12,p在前
10 2
- 4 回答
- 0 關注
- 692 瀏覽
添加回答
舉報
0/150
提交
取消