0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

常見(jiàn)的一級(jí)指針參數(shù)有什么作用

CHANBAEK ? 來(lái)源:EEMaker電子創(chuàng)客營(yíng) ? 作者: DK45王 ? 2023-10-24 14:35 ? 次閱讀

常見(jiàn)的一級(jí)指針參數(shù)

先來(lái)看一個(gè)最常用函數(shù)模型,函數(shù)func()參數(shù)為一個(gè)uint8_t 的指針類型,那這個(gè)函數(shù)有什么作用?

uint8_t data1[3];
void func(uint8_t *p)
{
	p[0]=0x01;
	p[2]=0x02;
}
void main()
{
	uint8_t *p1=data1;
	func(data1);
}
  • 在main函數(shù)中先定義了一個(gè)指針p1,然后把p1指向了一個(gè)數(shù)組data1。
  • 把p1作為參數(shù)傳遞進(jìn)函數(shù)func()
  • 結(jié)果也很容易猜到,就是data1中的值在func運(yùn)行時(shí)被改變了,分別等于0x01,0x02

那我們就不難理解,指針作為參數(shù)傳遞進(jìn)去,而函數(shù)內(nèi)部就可以修改這個(gè)指針?biāo)赶虻臄?shù)據(jù)。如下圖所示:

圖片

而這個(gè)就是一級(jí)指針,簡(jiǎn)單的可以看函數(shù)定義的參數(shù)帶一個(gè) “*” 號(hào)就是一級(jí)指針。p1就是一個(gè)一級(jí)指針傳遞進(jìn)去,而傳遞進(jìn)去以后就可以修改這個(gè)一級(jí)指針?biāo)赶虻牡刂返臄?shù)據(jù),也就是data1。

假如我想修改p1所指向的地址,該怎么辦?

如下如所示,現(xiàn)在我想讓p1不再指向data1,而是指向data2

圖片

這個(gè)很明顯用上面的一級(jí)指針作為參數(shù)已經(jīng)實(shí)現(xiàn)不了,它只能修改p1所指向的地址的數(shù)據(jù),而現(xiàn)在是要修改p1本身讓他指向data2。有的小伙伴可能已經(jīng)能猜到,p1指向data1我們可以修改data1,那再用一個(gè)指針指向p1不就是可以修改p1了。

圖片

那這里我們就可以定義一個(gè)指針的指針pp1,讓他指向p1,這樣把pp1傳入到函數(shù)中,函數(shù)內(nèi)部就可以修改p1的值了。
代碼如下:

uint8_t data1[3];
uint8_t data2[3];
void func2(uint8_t **pp)
{
	*p=data2;
}
void main()
{
	uint8_t *p1=data1;
	uint8_t *pp1=&p1;
	func(pp1);
}
89101112

這里傳入的pp1就是一個(gè)二級(jí)指針,而func2的參數(shù)也是帶兩個(gè)星號(hào)。
那二級(jí)指針也就不難理解了,他可以修改指向的指針,也就是修改pp1指向的指針p1的值,讓p1可以指向另外一塊內(nèi)存。
那實(shí)際上一般在使用的時(shí)候可能大部分都會(huì)省略掉這個(gè)pp1而使用更簡(jiǎn)便的寫(xiě)法:

void main()
{
	uint8_t *p1=data1;
	func(&p1);
}
聲明:本文內(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)投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1865

    瀏覽量

    32718
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4361

    瀏覽量

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

    關(guān)注

    1

    文章

    484

    瀏覽量

    70843
  • main
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    6298
收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    詳解C語(yǔ)言二級(jí)指針三種內(nèi)存模型

    級(jí)指針相對(duì)于一級(jí)指針,顯得更難,難在于指針和數(shù)組的混合,定義不同類型的二級(jí)
    發(fā)表于 11-02 09:35 ?442次閱讀

    嵌入式C語(yǔ)言二級(jí)指針

    級(jí)指針相對(duì)于一級(jí)指針,顯得更難,難在于指針和數(shù)組的混合,定義不同類型的二級(jí)
    發(fā)表于 11-04 10:08 ?688次閱讀

    iMatrix平臺(tái)中如何使用一級(jí)菜單

    一級(jí)菜單(menu:firstMenu)1.1說(shuō)明參數(shù)說(shuō)明: showNum:可選。一級(jí)菜單顯示的數(shù)目。鏈接的url在【系統(tǒng)構(gòu)建平臺(tái)】à【菜單管理】中修改或添加。 1.2使用例子,其頁(yè)面顯示如圖:
    發(fā)表于 05-29 10:43

    基于變速積分的PID一級(jí)倒立擺研究

    本文建立一級(jí)倒立擺的數(shù)學(xué)模型,闡述了變速積分的PID優(yōu)點(diǎn),對(duì)一級(jí)倒立擺的變速積分的PID控制進(jìn)行仿真,對(duì)比傳統(tǒng)PID控制明顯的性能改進(jìn)。
    發(fā)表于 02-03 17:14 ?73次下載
    基于變速積分的PID<b class='flag-5'>一級(jí)</b>倒立擺研究

    一級(jí)倒立擺的PID控制設(shè)計(jì)

    一級(jí)倒立擺的PID控制設(shè)計(jì)
    發(fā)表于 11-08 18:51 ?64次下載

    Mybatis緩存之一級(jí)緩存

    本文主要講mybatis的一級(jí)緩存,一級(jí)緩存是SqlSession級(jí)別的緩存。mybatis提供查詢緩存,用于減輕數(shù)據(jù)壓力,提高數(shù)據(jù)庫(kù)性能。mybaits提供一級(jí)緩存,和二級(jí)緩存。
    發(fā)表于 11-27 20:44 ?1280次閱讀
    Mybatis緩存之<b class='flag-5'>一級(jí)</b>緩存

    消防工程師的一級(jí)和二級(jí)哪些區(qū)別

    不少考生對(duì)于消、二消些困惑:不明白一級(jí)消防工程師和二級(jí)消防工程師到底
    的頭像 發(fā)表于 08-27 16:32 ?1.4w次閱讀

    C語(yǔ)言二級(jí)指針的用法與原理

    提到指針,我們都知道指針是用來(lái)存儲(chǔ)個(gè)變量的地址。所以,當(dāng)我們定義了個(gè)指向指針指針的時(shí)候(p
    發(fā)表于 07-02 14:52 ?4035次閱讀
    C語(yǔ)言二<b class='flag-5'>級(jí)</b><b class='flag-5'>指針</b>的用法與原理

    一級(jí)/二級(jí)/三級(jí)配電箱的作用及用途

    配電箱的一級(jí)、二、三級(jí)箱是啥意思?這是相對(duì)而言的問(wèn)題。我們做個(gè)假設(shè):個(gè)新建的小區(qū)引進(jìn)條10kV進(jìn)線,建了
    發(fā)表于 02-11 09:47 ?4676次閱讀

    配電箱的一級(jí)、二級(jí)保護(hù)措施哪些

      一級(jí)保護(hù)通常指對(duì)電路和設(shè)備進(jìn)行基本的短路保護(hù)和過(guò)載保護(hù),以確保電路和設(shè)備的正常運(yùn)行。般采用斷路器、熔斷器、載流開(kāi)關(guān)等設(shè)備來(lái)實(shí)現(xiàn),具有快速短路保護(hù)和過(guò)載保護(hù)功能,以防止電路和設(shè)備燒毀或發(fā)生其他嚴(yán)重事故。常見(jiàn)
    發(fā)表于 04-04 18:02 ?7651次閱讀

    C語(yǔ)言中一級(jí)指針、二級(jí)指針和三級(jí)指針

    一級(jí)指針的用法其實(shí)是取數(shù)據(jù)的地址,以此類推,二級(jí)指針就是取一級(jí)指針的地址,也可以表示
    發(fā)表于 05-19 17:30 ?2340次閱讀
    C語(yǔ)言中<b class='flag-5'>一級(jí)</b><b class='flag-5'>指針</b>、二<b class='flag-5'>級(jí)</b><b class='flag-5'>指針</b>和三<b class='flag-5'>級(jí)</b><b class='flag-5'>指針</b>

    mybatis一級(jí)緩存和二級(jí)緩存的原理

    MyBatis是種輕量級(jí)的持久化框架,它提供了一級(jí)緩存和二級(jí)緩存的機(jī)制來(lái)優(yōu)化數(shù)據(jù)庫(kù)操作性能。一級(jí)緩存是默認(rèn)開(kāi)啟的,而二級(jí)緩存需要手動(dòng)配置啟
    的頭像 發(fā)表于 12-03 11:55 ?1350次閱讀

    一級(jí)放大器和二級(jí)放大器哪個(gè)好點(diǎn)

    一級(jí)放大器和二級(jí)放大器是電子電路中常見(jiàn)的兩種放大器,它們?cè)陔娮釉O(shè)備中起到放大信號(hào)的作用一級(jí)放大器和二級(jí)
    的頭像 發(fā)表于 12-28 10:48 ?5720次閱讀

    一級(jí)配電箱的作用哪些

    在電力系統(tǒng)的構(gòu)建中,一級(jí)配電箱作為整個(gè)系統(tǒng)的起點(diǎn),扮演著至關(guān)重要的角色。它不僅是電源輸入的直接接收者,更是電能分配與控制的核心樞紐。本文將探討一級(jí)配電箱的各項(xiàng)功能。 、一級(jí)配電箱的電
    的頭像 發(fā)表于 09-20 17:13 ?826次閱讀

    一級(jí)、二級(jí)和三級(jí)配電箱的區(qū)別

    配電箱作為電能分配與控制的核心設(shè)備,發(fā)揮著至關(guān)重要的作用。根據(jù)其在電力系統(tǒng)中的位置和作用不同,配電箱可分為一級(jí)、二級(jí)和三級(jí)。本文將深入探討這
    的頭像 發(fā)表于 09-20 17:21 ?4177次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品