在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > Linux C - C基礎(chǔ)篇七(初識指針)

            Linux C - C基礎(chǔ)篇七(初識指針)

            發(fā)布人:嵌入式Linux 時(shí)間:2023-01-12 來源:工程師 發(fā)布文章
            概念

            在C語言中,所有的變量都是存放在內(nèi)存中,內(nèi)存可以理解為一組有序字節(jié)組成的數(shù)組,每個(gè)字節(jié)都有唯一的地址。CPU通過內(nèi)存尋址對存儲在內(nèi)存中的數(shù)據(jù)對象的地址進(jìn)行定位,數(shù)據(jù)對象是指存儲在內(nèi)存中的一個(gè)指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個(gè)自己的地址,而指針便是保存這個(gè)地址的變量。也就是說:指針其實(shí)是保存另一個(gè)變量的地址,我們能夠通過這個(gè)地址從而間接地操作這個(gè)變量。每個(gè)指針都有一個(gè)對應(yīng)的數(shù)據(jù)類型,不同指針之間的區(qū)別不在指針本身,而在于指針?biāo)傅淖兞康念愋蜕稀?/p>指針的定義

            我們通過在標(biāo)識符前加一個(gè)操作符 * 來定義指針變量。如下,定義一個(gè)指向int類型的指針ip,ip沒有指向任何實(shí)際的對象。

            int *ip;

            定義一個(gè)指針變量ip1,ip1被初始化為val的地址,通常在變量名前加上&表示取變量的地址。

            int val = 100;

            int *ip1 = &val;

            ip和ip1都指向val,持有同樣的地址值。

            ip = ip1;

            指針不能指向非地址值,例如下面的賦值是錯(cuò)誤的:

            ip1 = val;

            指針不能被初始化或賦值為其他類型對象的地址值,例如下面的指針賦值都是錯(cuò)誤的:

            double dval;

            ip = &dval;

            通常在指針的前面加上一個(gè)*代表取出指針指向地址里面的值:

            val = *p1;

            C提供了一種特殊的指針類型,空(void*)類型指針,它可以被任何數(shù)據(jù)指針類型的地址值賦值。void*表明相關(guān)的值是個(gè)地址,但該地址的對象類型不知道,我們不能夠操作空類型指針?biāo)赶虻膶ο?,只能傳送該地址值?/p>

            void * vp;

            vp = ip;

            vp = &dval;

            指針的運(yùn)算

            c語言中,可以對指針變量p進(jìn)行p++、p--、p + i等運(yùn)算,運(yùn)算所得結(jié)果同樣是一個(gè)指針,只不過指針?biāo)赶虻膬?nèi)存地址相比于p所指的內(nèi)存地址前進(jìn)或者后退了i個(gè)操作數(shù)。用一張圖來說明一下整型指針的操作:

            p是一個(gè) int 類型的指針,指向內(nèi)存地址 0x0000001C 處,則p++將指向與p相鄰的下一個(gè)內(nèi)存地址,由于 int 型數(shù)據(jù)占 4 個(gè)字節(jié),因此 p++ 所指的內(nèi)存地址為0x0000001C+4即0x00000020,其余依次類推。不過要注意的是,這種運(yùn)算只是改變了它所指向的地址。

            數(shù)組與指針

            在C語言中,指針與數(shù)組之間的關(guān)系非常緊密,許多可以用數(shù)組完成的工作同樣可以使用指針來完成。

            先聲明一個(gè)數(shù)組:

            int ia[10];

            其中ia既表示數(shù)組的數(shù)組名,也代表著數(shù)組的首地址,還代表數(shù)組首元素的地址,同時(shí)我們可以用ia + i來代表數(shù)組中第i個(gè)元素的地址。那么用指針如何表示呢?

            int *ip;

            ip = ia;

            聲明一個(gè)指向int型的指針ip,上面說了ia是個(gè)整型數(shù)組的地址,所以可以直接賦值給ip,這時(shí)ip也指向ia這個(gè)數(shù)組的首地址。ia[i] 就等效于 *(ia+i) 等效于 *(ip+i) 等效于 ip[i] 。同時(shí)我們可以用&ia[i] - &ia[j] 表示第i個(gè)元素和第j個(gè)元素這兩個(gè)地址之間相隔數(shù)據(jù)元素的個(gè)數(shù)。


            *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

            漏電開關(guān)相關(guān)文章:漏電開關(guān)原理
            漏電保護(hù)開關(guān)相關(guān)文章:漏電保護(hù)開關(guān)原理
            汽車防盜機(jī)相關(guān)文章:汽車防盜機(jī)原理


            關(guān)鍵詞: 指針

            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉