函數(shù)指針強(qiáng)轉(zhuǎn)盡量不要有,僅用于類型實(shí)際是相同的,但定義的變量類型不同,如
站在用戶的角度思考問題,與客戶深入溝通,找到大祥網(wǎng)站設(shè)計(jì)與大祥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋大祥地區(qū)。
另一個(gè)程序員寫了段代碼,要求你提供一個(gè)函數(shù)指針,類型如下:
typedef int (*ftype)(int,int);
但你寫的函數(shù)是 unsigned int fun(unsigned int,unsigned int),參數(shù)一個(gè)有符號,一個(gè)無符號,在你知道符號不影響結(jié)果的情況下,可以強(qiáng)制轉(zhuǎn)換。
所以強(qiáng)制類型轉(zhuǎn)換就是按照某個(gè)變量的類型取出該變量的值,再按照***to***的規(guī)則進(jìn)行強(qiáng)制轉(zhuǎn)轉(zhuǎn)換。如果是(類型名)常數(shù),則是將該常數(shù)按照 常數(shù)to類型 的規(guī)則進(jìn)行強(qiáng)制轉(zhuǎn)換。
指針也是一個(gè)變量,它自己占據(jù)一個(gè)4個(gè)字節(jié)的地址空間(由于程序的尋址空間是2^32次方,即4GB,所以用4個(gè)字節(jié)表示指針就已經(jīng)能指向任何程序能夠?qū)ぶ返降目臻g了,所以指針的大小為4字節(jié)),他的值是另一個(gè)東西的地址,這個(gè)東西可以是普通變量,結(jié)構(gòu)體,還可以是個(gè)函數(shù)等等。由于,指針的大小是4字節(jié),所以,我們可以將指針強(qiáng)制轉(zhuǎn)換成int型或者其他類型。同樣,我們也可以將任何一個(gè)常數(shù)轉(zhuǎn)換成int型再賦值給指針。所有的指針?biāo)嫉目臻g大小都是4字節(jié),他們只是聲明的類型不同,他們的值都是地址指向某個(gè)東西,他們對于機(jī)器來說沒有本質(zhì)差別,他們之間可以進(jìn)行強(qiáng)制類型轉(zhuǎn)換。
指針 to 指針的強(qiáng)制類型轉(zhuǎn)換是指將指針?biāo)傅膬?nèi)容的類型由原先的類型轉(zhuǎn)換為后面的類型。
例如:
int a = 1;
int *p = a;
float *p1 = (float*)p;
則p和p1的值都是a,但是*p是將a地址中的值按照int型變量進(jìn)行解釋,而*p1則是將a地址中的值按照float型變量進(jìn)行解釋。
一個(gè)指針做算數(shù)加減的時(shí)候,字面上的加一或者減一,實(shí)際增加或者減少的值是其指向類型的空間大小
也就是說,p+1,實(shí)際增長的值是sizeof(*p)
所以,將p轉(zhuǎn)為int*后,加10,實(shí)際增加是10*sizeof(int)也就是40
而如果是p+2,由于p是char*,實(shí)際增加的是2*sizeof(char)=2
當(dāng)前文章:函數(shù)指針強(qiáng)轉(zhuǎn)c語言 c++指針強(qiáng)轉(zhuǎn)
標(biāo)題路徑:http://m.newbst.com/article16/dogpjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、微信小程序、網(wǎng)站維護(hù)、網(wǎng)站收錄、軟件開發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容