jianhong_wu 发表于 2015-3-15 10:22:22

定义一个指针变量*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]
查看完整版本: 定义一个指针变量*str,为什么函数体中却变成了数组?已解答。