亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

C
HUX布斯 2019-04-04 02:02:59
C語言指針可以相減嗎?為什么?
查看完整描述

4 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

如果兩個指針向同一個數組,它們就可以相減,其為結果為兩個指針之間的元素數目。仍以本章開頭介紹的街道地址的比喻為例,假設我住在第五大街118號,我的鄰居住在第五大街124號,每家之間的地址間距是2(在我這一側用連續的偶數作為街道地址),那么我的鄰居家就是我家往前第(124-118)/2(或3)家(我和我的鄰居家之間相隔兩家,即120號和122號)。指針之間的減法運算和上述方法是相同的。

C 語言指針怎么理解?

你可以把它想象成一條無限長的紙帶。紙帶上邊有一個個的小格子,每個小格子正好是一字節,里邊能夠存放一個數字。計算機的工作就是對這些小格子里的數字做處理。雖然你在電腦上能夠看視頻、聽音樂,但這些東西本質上都是存在內存這條紙帶上的數字。


查看完整回答
反對 回復 2019-04-05
?
飲歌長嘯

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

 


查看完整回答
反對 回復 2019-04-05
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

可以啊本質上指針也是變量不過指針有大小
一般用指針相減來求偏移或者空間大小
對char的指針來說相差1內存相差1byte
對int的指針來說差1內存地址相差4個byte

查看完整回答
反對 回復 2019-04-05
  • 4 回答
  • 0 關注
  • 692 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號