欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7446|回復: 12
收起左側

stm32 C語言void函數(u32 *a)里的*a是要往函數輸入什么?

  [復制鏈接]
ID:382526 發表于 2018-8-25 17:35 | 顯示全部樓層 |閱讀模式
請教各位這個函數輸入量的意思是什么?意思是u32類型的*p嗎? 在例程里輸入的是 u32 a[n]; 這么定義的數組,而且使用該函數時是 函數(a) 這樣輸入,
另外函數里 *a++意思是指針地址+1? 例程里輸入的都是上述的數組,*a++在例程執行出來的意思相當于是a[x+1]的值

回復

使用道具 舉報

ID:389982 發表于 2018-8-25 17:54 | 顯示全部樓層
可以傳入一個u32類型的指針變量。如果傳入一個u32類型的數組名,實質上是傳入了指向該數組第一個元素的指針。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:388197 發表于 2018-8-26 09:20 | 顯示全部樓層
a++意思是對應數據類型的地址加1,如同a[x+1],使用時要注意,不要超出范圍導致野指針

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:385318 發表于 2018-8-26 09:50 | 顯示全部樓層
指針變量
回復

使用道具 舉報

ID:388986 發表于 2018-8-26 13:49 | 顯示全部樓層
可以輸入一個指針型變量
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
ID:390151 發表于 2018-8-26 14:57 | 顯示全部樓層
輸入一個u32類型的指針變量,如果定義了數組a[n],可以將數組a[n]的首地址a(或&a[0])傳入,*a就指向了首地址里的內容

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:319192 發表于 2018-8-26 16:19 | 顯示全部樓層
首先,void func(u32 *a)這個函數的形參是u32 *a,那么a是一個u32類型的指針變量。需要傳入一下u32類型的地址。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:391108 發表于 2018-8-29 11:17 | 顯示全部樓層
1.0地址而且是一個無符號32位的數據的地址;2.0輸入的為a就可以或者&a【0】都代表數組的首地址;3.0*a++這個你要注意是先自加還是先給地址

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:391189 發表于 2018-8-29 14:17 | 顯示全部樓層
指針變量啊!
回復

使用道具 舉報

ID:391190 發表于 2018-8-29 14:32 | 顯示全部樓層
a是數組指針,*a++是u32這個值加1, a++指數組索引加1及指向下一個u32數,地址是增加了sizeof(u32)的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:391468 發表于 2018-8-30 09:55 | 顯示全部樓層
指針變量,傳地址
回復

使用道具 舉報

ID:391468 發表于 2018-8-30 09:56 | 顯示全部樓層
指針變量,傳地址
回復

使用道具 舉報

ID:390775 發表于 2018-8-31 16:09 | 顯示全部樓層
你先看我寫的代碼然后  再去理解你寫的就好理解了
定義一個整型數組   int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
定義一個返回值為空的想用數組做形參的函數  
//void fun(int a[10])--------(才開始學c語言是的寫法)
//void fun(int a[]) ----------(學習一段時間后的寫法)
void fun(int *a) ----------(最常用的寫法   一般一維數組做函數參數是  編譯器內部會把  形參 轉化為指針,  因此我們如果要用一維數組做形參    一般都會直接寫成指針形式)
{  函數體   }

PS:  如果你以后接觸到二維數組做形參時  可能會這樣寫:
        void   fun(int  a[常量][常量])    void fun(int a[][常量])   或 void  fun(int (*a)[常量]) 三種形式
        因為  數組要考慮步長問題 所以 會退化為數組指針
       而指針數組  char *str[]  = { "1111", "2222"};  做形參時
        void  fun(char  *str[])    和  void fun(char **str)  兩種形式
   
然后再看你的   void函數(u32 *a)  首先 u32應該是數據類型(一般 u32 是無符號 32位整型)
    u32 *a    應該是  一維數組做函數參數(形參)  傳入的是  數組 首元素地址;
    注意:  還有一種情況   就是 想通過形參  去改  實參的值 (這得根據 你的代碼具體來看)  因為 指針存在的最大意義就是間接賦值。

另外函數里 *a++意思是指針地址+1?
u32 p = u3常量;定義了一個變量
u32 *a = NULL; a = &p   定義了一個指針變量   并指向p(把p的地址賦給a) a++ 相當于地址加了一個(u32 類型所占內存的字節)數。 而*a++;  是對 a 該內存的值進行加1(也就是p加1);
  希望 對你有幫助  還有不理解的地方  可以繼續問我哦
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表