国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么理解指針的指針?

學(xué)益得智能硬件 ? 來(lái)源:學(xué)益得智能硬件 ? 2024-02-23 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

怎么理解指針的指針?其實(shí)這個(gè)概念并不難,只是把它放到實(shí)際應(yīng)用中,容易造成困擾。

指針的指針還得先從指針講起。

先有一個(gè)變量,假設(shè)它是整型,在系統(tǒng)中占 4 個(gè)字節(jié)。

int a;

內(nèi)存是以字節(jié)為單位,每個(gè)字節(jié)都有一個(gè)地址,所以變量 a 占了4個(gè)地址。

wKgaomXYW6eAF520AAhEpgtfiMA992.jpg

C語(yǔ)言中,描述變量 a 的地址,一般取最前面的這個(gè)字節(jié),所以 a 的地址是 0x100。

為了方便計(jì)算,很多時(shí)候我們想把 0x100 保存下來(lái),于是又需要一個(gè)變量,這個(gè)變量就是指針變量。指針的大小跟環(huán)境有關(guān)系,這里假設(shè)占 4 個(gè)字節(jié)。用代碼來(lái)表示,可以寫(xiě)成:

int *p = &a;

我們也經(jīng)常說(shuō),指針 p 指向變量 a。

wKgZomXYW6eAd6EAAAfU7kUaPSs671.jpg

既然 p 在內(nèi)存中占了 4 個(gè)字節(jié),那他肯定也有個(gè)地址,假設(shè)這個(gè)地址是 0x1000,如果想把 0x1000 保存下來(lái),那就需要指針的指針。

指針的指針也屬于指針,所以在內(nèi)存中也占 4 個(gè)字節(jié)。

如果用代碼來(lái)表示,可以寫(xiě)成:

int **q = &p;

q是個(gè)指針,指向變量 p,因?yàn)?p 本身也是個(gè)指針,所以就把 q 稱作指針的指針。

雖然 q 和 p 都是指針,但是也不能隨便賦值,比如能不能寫(xiě)成:

q = &a;

q是指針,&a是地址,地址賦值給指針,簡(jiǎn)直完美。

這個(gè)代碼完全行不通,因?yàn)?q 是 int ** 類型,它只能指向 int *類型的變量,比如 p 就是 int * 類型的變量,而 a 是 int 類型的變量。

關(guān)于指針的指針,有個(gè)極其經(jīng)典的筆試題,如果你刷過(guò)題,那你一定會(huì)遇到。



這個(gè)題目問(wèn)題就出在實(shí)參和形參是兩塊不同的內(nèi)存,malloc申請(qǐng)的內(nèi)存,地址記在了形參中,對(duì)實(shí)參沒(méi)有任何的影響,所以在主函數(shù)中,實(shí)參一直是空,把字符串拷貝進(jìn)去,就會(huì)出現(xiàn)段錯(cuò)誤。

void init_memory(char **s)
{
    *s = malloc(128);     
}


int main()
{
    char *str = NULL;
    
    init_memory(&str);
    
    strcpy(str, "helloworld");
            
    return 0;
}
修改的方法就是傳指針 str 的地址,形參改成指針的指針,于是就出現(xiàn)了 s 指向 str,*s 就是 str,執(zhí)行init函數(shù),str從NULL變成了一個(gè)合法的地址,程序就能順利運(yùn)行。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145598
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71851
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    616

    瀏覽量

    29506

原文標(biāo)題:怎么理解指針的指針?

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    函數(shù)指針指針函數(shù)的概念

    不少朋友會(huì)混淆“函數(shù)指針”和“指針函數(shù)”這兩個(gè)概念,本文詳細(xì)介紹一下。
    發(fā)表于 03-09 10:49 ?1708次閱讀

    指針的用法總結(jié),指針用法大全

    讓你不再害怕指針前言:復(fù)雜類型說(shuō)明要了解指針,多多少少會(huì)出現(xiàn)一些比較復(fù)雜的類型,所以我先介紹一下如何完全理解一個(gè)復(fù)雜類型,要理解復(fù)雜類型其實(shí)很簡(jiǎn)單,一個(gè)
    發(fā)表于 10-14 17:51 ?87次下載

    C和指針習(xí)題答案配C和指針

    C和指針習(xí)題答案配C和指針
    發(fā)表于 09-07 14:29 ?6次下載
    C和<b class='flag-5'>指針</b>習(xí)題答案配C和<b class='flag-5'>指針</b>

    c語(yǔ)言函數(shù)指針定義,指針函數(shù)和函數(shù)指針的區(qū)別

     往往,我們一提到指針函數(shù)和函數(shù)指針的時(shí)候,就有很多人弄不懂。下面就由小編詳細(xì)為大家介紹C語(yǔ)言中函數(shù)指針指針函數(shù)和函數(shù)指針之間的區(qū)別。
    發(fā)表于 11-16 15:18 ?4202次閱讀

    深入理解C指針(C/C++程序員進(jìn)階必備,透徹理解指針與內(nèi)存管理)pdf

    深入理解C指針
    發(fā)表于 03-21 09:42 ?122次下載

    為什么使用指針?C++中的“指針

    為什么使用指針?因?yàn)樵诓僮鞔笮蛿?shù)據(jù)和類時(shí),指針可以通過(guò)內(nèi)存地址直接訪問(wèn)數(shù)據(jù),可避免在程序中復(fù)制大量的代碼,因此指針的效率最高。一般來(lái)說(shuō),指針會(huì)有3大用途
    的頭像 發(fā)表于 10-04 10:33 ?5786次閱讀

    輕松理解C語(yǔ)言指針的實(shí)驗(yàn)和詳細(xì)資料說(shuō)明

    我并不打算使用過(guò)于官方、正統(tǒng)的語(yǔ)言來(lái)講解指針。因?yàn)槿绻疫@樣做,就失去了做這個(gè)教程的意義。如果需要,大家完全可以從各大教材、網(wǎng)站找到對(duì)指針正規(guī)的解釋。但無(wú)疑,這種正規(guī)、一絲不茍的解釋卻沒(méi)法帶領(lǐng)大家,尤其是學(xué)習(xí)C語(yǔ)言的新手,來(lái)輕松的領(lǐng)悟
    發(fā)表于 04-11 16:08 ?10次下載
    輕松<b class='flag-5'>理解</b>C語(yǔ)言<b class='flag-5'>指針</b>的實(shí)驗(yàn)和詳細(xì)資料說(shuō)明

    如何輕松理解C語(yǔ)言指針的詳細(xì)資料說(shuō)明

    我并不打算使用過(guò)于官方、正統(tǒng)的語(yǔ)言來(lái)講解指針。因?yàn)槿绻疫@樣做,就失去了做這個(gè)教程的意義。如果需要,大家完全可以從各大教材、網(wǎng)站找到對(duì)指針正規(guī)的解釋。但無(wú)疑,這種正規(guī)、一絲不茍的解釋卻沒(méi)法帶領(lǐng)大家,尤其是學(xué)習(xí)C語(yǔ)言的新手,來(lái)輕松的領(lǐng)悟
    發(fā)表于 05-08 17:48 ?11次下載
    如何輕松<b class='flag-5'>理解</b>C語(yǔ)言<b class='flag-5'>指針</b>的詳細(xì)資料說(shuō)明

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組的指針

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組的指針
    的頭像 發(fā)表于 06-29 15:38 ?1.6w次閱讀
    <b class='flag-5'>理解</b>函數(shù)<b class='flag-5'>指針</b>、函數(shù)<b class='flag-5'>指針</b>數(shù)組、函數(shù)<b class='flag-5'>指針</b>數(shù)組的<b class='flag-5'>指針</b>

    C語(yǔ)言指針理解使用

    C語(yǔ)言指針理解使用指針變量的聲明給普通變量的賦值對(duì)比給指針變量的賦值代*的指針的使用說(shuō)明指針
    發(fā)表于 01-13 13:42 ?3次下載
    C語(yǔ)言<b class='flag-5'>指針</b>的<b class='flag-5'>理解</b>使用

    二級(jí)指針和多級(jí)指針的定義形式

    指針變量作為一個(gè)變量也有自己的存儲(chǔ)地址,而指向指針變量的存儲(chǔ)地址就被稱為指針指針,即二級(jí)指針
    的頭像 發(fā)表于 10-18 16:38 ?2836次閱讀

    淺談指針常量和常量指針

    這節(jié)課我們來(lái)講一講指針常量和常量指針
    的頭像 發(fā)表于 02-21 09:27 ?1746次閱讀

    指針是什么

    指針是什么? 1.1 淺談指針 理解指針的 兩個(gè)要點(diǎn): 指針是內(nèi)存中一個(gè)最小單元的編號(hào),也就是地址; 平時(shí)口語(yǔ)中說(shuō)的
    的頭像 發(fā)表于 11-24 15:50 ?3457次閱讀
    <b class='flag-5'>指針</b>是什么

    函數(shù)指針指針函數(shù)是不是一個(gè)東西?

    函數(shù)指針的本質(zhì)是指針,就跟整型指針、字符指針一樣,函數(shù)指針指向的是一個(gè)函數(shù)。
    的頭像 發(fā)表于 01-03 16:35 ?1121次閱讀
    函數(shù)<b class='flag-5'>指針</b>和<b class='flag-5'>指針</b>函數(shù)是不是一個(gè)東西?

    面試常考+1:函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組

    在嵌入式開(kāi)發(fā)領(lǐng)域,函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組是一些非常重要但又容易混淆的概念。理解它們的特性和應(yīng)用場(chǎng)景,對(duì)于提升嵌入式程序的效率
    的頭像 發(fā)表于 08-10 08:11 ?2060次閱讀
    面試常考+1:函數(shù)<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數(shù)、數(shù)組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數(shù)組