柚子快報(bào)激活碼778899分享:筆記 C語(yǔ)言:指針典型例題剖析
柚子快報(bào)激活碼778899分享:筆記 C語(yǔ)言:指針典型例題剖析
? ? ?
? ? ? 本篇重點(diǎn)講解一維數(shù)組、字符數(shù)組、二維數(shù)組的sizeof和strlen的應(yīng)用,首先要先回顧以下知識(shí)(在博主指針專(zhuān)題的深入理解指針(1)、(2)和(3)中有詳細(xì)學(xué)習(xí))
一、做題前的重點(diǎn)知識(shí)回顧
1.sizeof和strlen的對(duì)比
sizeof:
1.sizeof是操作符
2.sizeof計(jì)算操作數(shù)所占內(nèi)存空間的大小,單位是字節(jié)
3.sizeof并不關(guān)心存放了什么數(shù)據(jù)。
strlen:
1.strlen是一個(gè)庫(kù)函數(shù),頭文件是string.h
2.strlen統(tǒng)計(jì)的是\0前面的元素個(gè)數(shù),所以一般只適用于字符串,因?yàn)樽址慕Y(jié)尾隱藏著一個(gè)\0
3.strlen的使用過(guò)程中一定要關(guān)注是否有\(zhòng)0,如果沒(méi)有,就很可能出現(xiàn)越界訪(fǎng)問(wèn),此時(shí)會(huì)得到一個(gè)隨機(jī)值。 ?
2.數(shù)組名的理解
?·?sizeof(數(shù)組名),sizeof中單獨(dú)放數(shù)組名,這?的數(shù)組名表?整個(gè)數(shù)組,計(jì)算的是整個(gè)數(shù)組的??, 單位是字節(jié)。
??·?&數(shù)組名,這?的數(shù)組名表?整個(gè)數(shù)組,取出的是整個(gè)數(shù)組的地址(整個(gè)數(shù)組的地址和數(shù)組?元素 的地址是有區(qū)別的)
其他情況遇到的數(shù)組名都是首元素地址!!
3.指針變量類(lèi)型的意義
既然指針的大小和類(lèi)型無(wú)關(guān),同一個(gè)操作平臺(tái)下指針大小是一樣的,那么指針的數(shù)據(jù)類(lèi)型有什么用呢?
1.指針的類(lèi)型決定了對(duì)指針解引用的權(quán)限有多大
2.指針的類(lèi)型決定了指針向前或者向后走一步(+1或-1)有多大
3.void*叫做無(wú)類(lèi)型指針,這類(lèi)指針可以用來(lái)接受任意類(lèi)型的地址,但是也有局限性,就是void*不能直接進(jìn)行指針的+-整數(shù)和解引用運(yùn)算。
4.字符指針變量
字符指針變量接收字符串的本質(zhì)是將字符串的首字符地址存放到字符指針變量中,所以如果字符串出現(xiàn)在表達(dá)式中,他的值就是第一個(gè)字符的地址。
其實(shí)我們可以把字符串理解成一個(gè)字符數(shù)組,他具有數(shù)組的特點(diǎn),可以通過(guò)首元素地址找到后面的全部元素,并且也可以像數(shù)組一樣通過(guò)下標(biāo)去訪(fǎng)問(wèn)每個(gè)元素
5.二維數(shù)組傳參的本質(zhì)
二維數(shù)組的首元素就是第一行,是個(gè)一維數(shù)組。
二維數(shù)組的數(shù)組名就是就是第一行(一維數(shù)組)的地址,二維數(shù)組傳參本質(zhì)是傳遞第一行這個(gè)一維數(shù)組的地址。
二維數(shù)組第一行的一維數(shù)組的數(shù)據(jù)類(lèi)型是int[n],所以第一行的地址類(lèi)型就是數(shù)組指針類(lèi)型int(*)[n],所以我們可以將形參類(lèi)型寫(xiě)成指針形式。? ?
二、數(shù)組和指針
聲明:x64環(huán)境下地址的大小是8個(gè)字節(jié)
解析都在注釋里?。?/p>
1.一維數(shù)組
2.字符數(shù)組
2.1.字符數(shù)組中放入字符
2.2.字符數(shù)組中放入字符串
2.3.字符指針變量中放入字符串
3.二維數(shù)組
三、指針的運(yùn)算
柚子快報(bào)激活碼778899分享:筆記 C語(yǔ)言:指針典型例題剖析
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀(guān)點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。