指針類型探索

概念:指針是一個(gè)新的數(shù)據(jù)類型,帶? N 個(gè)? *? 號(hào)的數(shù)據(jù)類型,任何一個(gè)數(shù)據(jù)類型后面都能跟上? N? 個(gè) * 號(hào);

?聲明:

? ? ? ? ?1)char**? x ;? ? ? ? ? ? ? ?char***? x;? ? ? ? ? ? ? char*******? ? x;

? ? ? ? ?2)short** y;? ? ? ? ? ? ? ? short***? y;? ? ? ? ? ? ? short********? ? y;

? ? ? ? ?3)int**? ? z;? ? ? ? ? ? ? ? ? int***? ? ? ? z;? ? ? ? ? ? int********? ? z;

? ? ? ? ?4)double**? ? k;? ? ? ? ? double***? ? k;? ? ? ? double********? ? k;


賦值:

? ? ? ? 1)簡(jiǎn)化寫(xiě)法:int? ? x ;? ? x = 10 ;? ??

? ? ? ? 2)完整寫(xiě)法:int *? ?x ;? ? x = ( int * ) 10 ;? 告訴編譯器怎樣看待后面的值10,*號(hào)類型賦值必須用完整寫(xiě)法。


特征:

? ? ? ? 1)所有指針類型的 [ 數(shù)據(jù)寬度 ] :4 字節(jié)(32bit)

指針類型-數(shù)據(jù)寬度:4字節(jié)【32bit】

? ? ? ? 2)++ 或者 --(++或--操作,到底加幾還是減幾?

? ? ? ? 答:砍掉一個(gè)*號(hào),是什么類型寬度,那么++和--就自加或自減砍掉一個(gè)*號(hào)后的類型寬度)

情況一:執(zhí)行前,都是100(0x64h)
情況一:執(zhí)行后,分別自加了1、2、4個(gè)字節(jié)


情況二:執(zhí)行前,都是100(0x64h)
情況二:執(zhí)行后,都自加了 4 字節(jié)

?????????3)+? 上? 或者? ?-? 去,一個(gè)整數(shù)


情況一:執(zhí)行前,都是100(0x64h)


情況二:執(zhí)行后,都自加了 4 字節(jié)


? ? ? ? 4)兩個(gè)指針類型:求差值

? ? ? ? ? ? ? ? 答:可以相減,但是*號(hào)的數(shù)量和類型必須相同,相減后除以類型的寬度(判斷類型寬度就砍掉一個(gè)*號(hào)后的);


? ? ? ? 5)指針類型之間:做大小比較

? ??????????????答:可以相減,但是*號(hào)的數(shù)量和類型必須相同。



指針高級(jí)用法(※ 星行之旅 ※),將指針運(yùn)算轉(zhuǎn)換成數(shù)組尋址模式

char? ? x;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

char* p1;????char** p2;? ? char*** p3;? ? char**** p4;? ? char***** p5;? ? char****** p6;

x = *p1 = *(p1+0) = p1[ 0 ]

x = *(*(p2+1)+3) = p2[ 1 ][ 3 ]? ? 內(nèi)存尋址--->? ? +4? +3

x = *(*(*(p3+1)+2)+3) = p3[ 1 ][ 2 ][ 3 ]? ?內(nèi)存尋址 --->? ? +4? +8? ? +3


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容