指針相減=(地址1-地址2)/sizeof(類型) 這個(gè)你把他當(dāng)成定律 ,你要記牢。指針相減得出的結(jié)果就是兩個(gè)元素相差的單元, 地址1 和地址2 以%d求出結(jié)果,不要用十六進(jìn)制,要用十進(jìn)制。
為印臺(tái)等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及印臺(tái)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、印臺(tái)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
指針相減的結(jié)果是某種整類型的值,為此,ANSIC標(biāo)準(zhǔn)stddef.h頭文件中預(yù)定義了一個(gè)整類型ptrdiff_t。盡管在不同的編譯程序中ptrdiff_t的類型可能各不相同(int或long或其它),但它們都適當(dāng)?shù)囟x了ptrdiff_t類型。
嗯,沒錯(cuò),對(duì)指針的加減運(yùn)算是以步長(zhǎng)為單位的,不過這是對(duì)編譯器來講的。
因此age+1-age=1的結(jié)果為1。而(int)(age+1)-(int)(age)=4中,有強(qiáng)制類型轉(zhuǎn)換:(int)(age+1)即(age+1)轉(zhuǎn)化為整形,age也轉(zhuǎn)化為整形,這時(shí)候它們相減就變成了數(shù)字1004減去數(shù)字1000,所以結(jié)果為4。
你指針指向數(shù)組,那兩個(gè)malloc申請(qǐng)的地址是多余的。pintfSize函數(shù)多了個(gè)變量b,你沒有定義,沒用的變量多余的。數(shù)組元素個(gè)數(shù)應(yīng)該等于尾地址-首地址+1。
1、兩個(gè)指針是不能相加的。仍以街道地址的比喻為例,假設(shè)你住在湖濱大道1332號(hào),你的鄰居住在湖濱大道1364號(hào),那么1332+1364指的是什么呢?其結(jié)果是一個(gè)毫無意義的數(shù)字。如果你的C程序試圖將兩個(gè)指針相加,編譯程序就會(huì)發(fā)出警告。
2、可以啊指針其實(shí)也是一個(gè)內(nèi)存單元,存放了一個(gè)地址,變量也是一個(gè)內(nèi)存單元,存放了一個(gè)變量。減了就是吧指針這個(gè)內(nèi)存單云存放的地址減了。
3、B選項(xiàng)賦值,這個(gè)當(dāng)然是可以的了。D選項(xiàng)兩個(gè)相同指針變量相減可以獲得在之間相隔的同類型元素個(gè)數(shù)(在某個(gè)類型的數(shù)組中的應(yīng)用)。C選項(xiàng)是不可以的,因?yàn)閮蓚€(gè)指針相加什么都得不到,所以規(guī)定不允許相加。
指針指向數(shù)組元素時(shí),可以對(duì)指針進(jìn)行以下運(yùn)算:加一個(gè)整數(shù)(用+或+=),減一個(gè)整數(shù)(用-或-=),自加運(yùn)算,如p++,++p\自減運(yùn)算,如p--,--p 兩個(gè)指針相減,只有p1和p2都指向同一數(shù)組中的元素時(shí)才有意義)。
如果是對(duì)指向結(jié)構(gòu)體數(shù)組的指針進(jìn)行減法運(yùn)算,則a[0]和a[8]之間的距離為8;如果將指向結(jié)構(gòu)體數(shù)組的指針強(qiáng)制轉(zhuǎn)換成指向純粹的內(nèi)存地址的指針后再相減,則a[0]和aL8]之間的距離為128(即十六進(jìn)制數(shù)0x80)。
B選項(xiàng)賦值,這個(gè)當(dāng)然是可以的了。D選項(xiàng)兩個(gè)相同指針變量相減可以獲得在之間相隔的同類型元素個(gè)數(shù)(在某個(gè)類型的數(shù)組中的應(yīng)用)。C選項(xiàng)是不可以的,因?yàn)閮蓚€(gè)指針相加什么都得不到,所以規(guī)定不允許相加。
分享名稱:c語言指針相加相減函數(shù) c語言用指針求和
網(wǎng)站鏈接:http://chinadenli.net/article28/depdicp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)