定义一个指针变量*str,为什么函数体中却变成了数组?已解答。
本帖最后由 jianhong_wu 于 2015-3-15 11:08 编辑曹健-江苏:
//中值滤波,算法:先进行排序,然后将数组的中间值作为当前值返回
U16 Error_Correct(U16 *str,U8 num)
{
U8 i=0;
U8 j=0;
U16 Temp=0;
U16 shu;
//排序
for(i=0;i<num-1;i++)
{
for(j=i+1;j<num;j++)
{
if(str<str)
{
Temp=str;
str=str;
str=Temp;
}
}
}
shu=str+str+str+str;
//去除误差,取中间值
return shu/4;
}
定义一个指针变量*str,为什么函数体中却变成了数组?
流氓兔--陕西:
指针不是和数组一样吗,可以相互替换。
曹健-江苏:
是这样吗?指针和数组可以替换?
坚鸿-深圳:
指针跟数组的表现形式是可以互换的,你就当做凡是指针做形参的,在函数内部都可以直接当数组来用,因为指针代表着数组的首个地址。指针和数组是可以替换的,因为它们有一个共同点,地址都是依次相邻的。我们之所以要指针,是因为指针的写法比较简洁。
宝藏-云南:
指针的所指地址可以改变。数组的首地址定下来的。
小谢-福建:
指针是高富帅,数组是屌丝。
优时优客--安徽:
数组首地址不接受指针运算的,这是区别。
曹健-江苏:
理解了,谢谢诸位,这个还没有看到, 需要再强化一下C语言。
小谢-福建:
指针比数组强大呀。
Tony--青岛:
能用好一种就行了,只要功能满足。
Ray-上海:
这句话是有问题的。指针和数组不一定能替换。
Zed-青岛:
一维可以吧。
优时优客--安徽:
大部分场景都能替换。
Ray-上海:
不能用替换来说明。只能说明二者有共同点。
坚鸿-深圳:
不纠结那个概念。那个指针跟数组的互换是针对特定场合下的。
Ray-上海:
不是概念。不是纠结,这个问题不要混淆了。
伟仔-肇庆:
数组能做的事,指针都能做,指针能做的事,数组很多都做不了。指针与数组,可以看朱老师技术贴,一定意义上,数组与指针,半毛钱关系也没有。
优时优客--安徽:
指针和数组是不同的数据类型。
伟仔-肇庆:
我第一次知道朱老师,就是看他的公开课,讲的就是指针与数组的嗯嗯怨怨,开篇立论就是,数组与指针没关系。
Ray-上海:
一定要记得指针是什么东西,要搞清楚内存、地址概念是什么,变量是如何在内存中存放的,而且指针这个东西是把双刃剑,用的好可以披荆斩棘,用得不好则会刺得自己鲜血淋漓。指针可以用来引用数组元素,因为指针指向地址,而数组的首元素有一个固定地址。
肖亚平--成都:
指针就像情人,用的时候一定要注意,要不然就带来巨大的灾难。
坚鸿-深圳:
其实我感觉,在单片机的领域里,指针的应用也挺简单的,不涉及到指针内存泄露的问题,也不存在指针释放的问题,没有大家想象中那么恐怖。
肖亚平--成都:
只要明白,指针只能赋值变量地址就可以了,我一般是这样理解,但是用还是没有问题。
优时优客--安徽:
一些教科书开篇就讲C指针怎么样的难,怎么样的容易出错,给人一种不好的感觉,从心理打击人。我觉得学习东西从实践中学是最好的 有次群里有个人说了句话,是相等好的,做就是了,错了又不会怀孕。意思是学东西不要苟泥于形式内容,实践出真知,多实践,自然就掌握了,学C多敲敲代码,即使出错了又不会怀孕。
坚鸿-深圳:
正如郭天翔所说“缺什么补什么”,我在《从业将近十年!手把手教你单片机程序框架》中,总结过指针的5大用途,
页:
[1]