在c语言中函数的参数可所以数组
u8 num[10];
void f(u8 a[])
{
a[0] = 1;
a[1] = 2;
}
其实数组便是地址,每1个数组,便是一个地址。所以说,函数参数为指针的时分,也能够将实参放数组。
void f(u8 *p)
{
*(p + 0) = 1;
*(p +1) = 2;
}
其实这个姿态也能够,由于p是地址,*p是取地址中的内容,所以(P+1)则是将地址p位移到下一个地址,再去取内容,所以要加括号,假如不家括号的话,编译器就会报错。
还有函数体中,最好不要呈现“ *P = 10;” 最好的方法是“*(P+0)= 10;”。
调用的话便是这个姿态
f(num);
放入函数的参数,其实便是数组的首地址
假如想把数组的第二个值为参数的话,可所以这个姿态
f(num + 1);
或许
f(&num[1]);
这样就能够将数组的第二个数据的地址变成首地址,放入函数当实参
其实我觉得第二种比较不错,由于num+1的话,是先取num的地址,然后在加1,这样的话,cpu就需要有两次的运算,取地址,地址自加
若选用第二种
则在编译时分,应该直接就取得了数组的第二个地址,这样的话,能够省去一条运算。
关于数组做函数参数
在c语言中函数的参数可以是数组u8num[10];voidf(u8a[]){a[0]=1;a[1]=2;}其实数组就是地址,每1个数组,就是一个地
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/318712.html