4 回答

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

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
同類型的指針可以相減,其結(jié)果是兩個(gè)指針?biāo)赶虻刂烽g相差的這個(gè)類型元素的個(gè)數(shù),如果是高地址的減低地址就是正數(shù),否則就是負(fù)數(shù)
比如int a[100], *p, *q;
p = &a[10];
q = &a[22];
那么q - p = 12,就是兩者之間差了12個(gè)元素,q在后(高地址)
p - q = -12,p在前
10 2

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
可以啊本質(zhì)上指針也是變量不過(guò)指針有大小
一般用指針相減來(lái)求偏移或者空間大小
對(duì)char的指針來(lái)說(shuō)相差1內(nèi)存相差1byte
對(duì)int的指針來(lái)說(shuō)差1內(nèi)存地址相差4個(gè)byte
- 4 回答
- 0 關(guān)注
- 1167 瀏覽
添加回答
舉報(bào)