關(guān)于指針的一些記錄

1、按變量的地址直接存取變量的方法,稱為“直接訪問(wèn)”。存儲(chǔ)該變量的內(nèi)存空間的首地址稱為該變量的地址。

2、如果將一個(gè)變量的地址放在另一個(gè)變量中,則存放地址的變量稱為指針型變量。

此時(shí)存取變量,可以間接地由指針型變量取得該變量的地址,這稱為“間接訪問(wèn)”的方式。

3、指針型變量的值也簡(jiǎn)稱為指針,所以指針就是地址。

4、指針型變量的定義格式:類(lèi)型 * 變量名。其中*是定義指針類(lèi)型的說(shuō)明符,而不是指針變量的一部分。

5、指針變量絕對(duì)不能任意賦一個(gè)內(nèi)存地址,只能取一個(gè)已經(jīng)分配了內(nèi)存的變量的地址賦值給指針變量。

6、c++中,有兩個(gè)專門(mén)的運(yùn)算符與指針有關(guān)。

a. &:取地址符,運(yùn)算結(jié)果不能作為左值。

b. *: 是間接引用運(yùn)算符,作用于一個(gè)指針型變量,訪問(wèn)該指針?biāo)赶虻膬?nèi)存數(shù)據(jù)。因?yàn)槭莾?nèi)存中的可尋址數(shù)據(jù),所以可以作為左值。

7、const修飾指針:

a. 指針常量:固定指向一個(gè)對(duì)象的指針,指針本身是常量,此時(shí),const放中間。char * const ptr = &ch。ptr本身在初始化時(shí)的地址是不可變的,但它指向的目標(biāo)ch的值是可以改變的。

b. ?常量指針:指向“常量”的指針,即指針本身是可以改為指向別的對(duì)象,但不能通過(guò)該指針修改對(duì)象。即只能作為只讀指針使用。此時(shí),const放前面,const char * ptr = &ch。常量指針一般用于函數(shù)的參數(shù),以免誤改實(shí)參。

8、數(shù)組與指針的關(guān)系:數(shù)組名看作改數(shù)組的第一個(gè)元素在內(nèi)存中的首地址。數(shù)組名是地址,當(dāng)然也是指針,但數(shù)組名中存放的地址是不可以改變的,所以稱為指針常量。

9、指針作為函數(shù)參數(shù)。將指針做為函數(shù)的參數(shù)時(shí),傳的仍然是值,即指針的值,這個(gè)值就是指針?biāo)赶蛟氐牡刂贰?/p>

從物理上講,傳的是指針的值,與傳其他變量沒(méi)有區(qū)別,函數(shù)獲得的是另一個(gè)變量的地址;

從邏輯上講,是把另一個(gè)變量的地址傳了過(guò)去,可以看作傳地址。

函數(shù)中操作的對(duì)象不是指針本身,而是指針?biāo)赶虻淖兞?,與引用參數(shù)在本質(zhì)上沒(méi)有差別。

10、指針的“算術(shù)運(yùn)算”與“關(guān)系運(yùn)算”,只有指針指向數(shù)組或結(jié)構(gòu)體元素的時(shí)候,這些運(yùn)算才有意義,主要規(guī)則:

a.指針變量與整形變量n的加減表示移動(dòng)指針

新指針的值 = 原指針 + n * sizeof(指針指向的數(shù)據(jù)類(lèi)型)

b.只有當(dāng)兩個(gè)同類(lèi)型的指針變量指向同一個(gè)數(shù)組時(shí),才可以進(jìn)行減法運(yùn)算,表示從第一個(gè)指針到第二個(gè)指針元素之間的元素?cái)?shù)量。第一個(gè)和第二個(gè)元素之間元素的個(gè)數(shù)是1,即原指針的地址值得差除以sizeof(元素類(lèi)型)

c.只有當(dāng)指向同一個(gè)數(shù)組時(shí),才能用‘>' '==' '!='

注意:兩個(gè)指針相加毫無(wú)意義

d.指針同樣可以++,--運(yùn)算,必須小心使用,注意優(yōu)先級(jí)。

y = *p++ ? ==> y = *(p++)因?yàn)楹?+,所以y取值為*p, 而*p增加1后,指向下一個(gè)元素。

千萬(wàn)不要以為是p所指的目標(biāo)元素的值加1.

最后編輯于
?著作權(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)容

  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類(lèi)型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,618評(píng)論 3 44
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,688評(píng)論 1 51
  • 1.語(yǔ)言中變量的實(shí)質(zhì) 要理解C指針,我認(rèn)為一定要理解C中“變量”的存儲(chǔ)實(shí)質(zhì), 所以我就從“變量”這個(gè)東西開(kāi)始講起吧...
    金巴多閱讀 1,979評(píng)論 0 9
  • 才道別離又相思 言出肺腑總是遲 如有夢(mèng)蝶托字 代傳兩翼情辭 道盡今生與前世 獻(xiàn)一顆真心赤 品你如詩(shī) 把那天地做紙 ...
    楊亦斐閱讀 332評(píng)論 0 0
  • 一、將一個(gè)workbook拆分為多個(gè)workbook Sub cf() Dim wk As Workbook, s...
    zhongxyz閱讀 452評(píng)論 0 0

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