标题: stm32 C语言void函数(u32 *a)里的*a是要往函数输入什么? [打印本页]

作者: wrdt24435    时间: 2018-8-25 17:35
标题: stm32 C语言void函数(u32 *a)里的*a是要往函数输入什么?
请教各位这个函数输入量的意思是什么?意思是u32类型的*p吗? 在例程里输入的是 u32 a[n]; 这么定义的数组,而且使用该函数时是 函数(a) 这样输入,
另外函数里 *a++意思是指针地址+1? 例程里输入的都是上述的数组,*a++在例程执行出来的意思相当于是a[x+1]的值


作者: INSPIRE    时间: 2018-8-25 17:54
可以传入一个u32类型的指针变量。如果传入一个u32类型的数组名,实质上是传入了指向该数组第一个元素的指针。
作者: cjm82    时间: 2018-8-26 09:20
a++意思是对应数据类型的地址加1,如同a[x+1],使用时要注意,不要超出范围导致野指针
作者: CrlikenNN    时间: 2018-8-26 09:50
指针变量
作者: 大可爱    时间: 2018-8-26 13:49
可以输入一个指针型变量
作者: DerekTao    时间: 2018-8-26 14:57
输入一个u32类型的指针变量,如果定义了数组a[n],可以将数组a[n]的首地址a(或&a[0])传入,*a就指向了首地址里的内容
作者: wyl_188    时间: 2018-8-26 16:19
首先,void func(u32 *a)这个函数的形参是u32 *a,那么a是一个u32类型的指针变量。需要传入一下u32类型的地址。
作者: xiayutian    时间: 2018-8-29 11:17
1.0地址而且是一个无符号32位的数据的地址;2.0输入的为a就可以或者&a【0】都代表数组的首地址;3.0*a++这个你要注意是先自加还是先给地址
作者: willy0101    时间: 2018-8-29 14:17
指针变量啊!
作者: arose    时间: 2018-8-29 14:32
a是数组指针,*a++是u32这个值加1, a++指数组索引加1及指向下一个u32数,地址是增加了sizeof(u32)的
作者: SunshineRain    时间: 2018-8-30 09:55
指针变量,传地址
作者: SunshineRain    时间: 2018-8-30 09:56
指针变量,传地址
作者: zhaoyinlo    时间: 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);
  希望 对你有帮助  还有不理解的地方  可以继续问我哦




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1