C语言与单机-35-指针简单使用
时间:10-11 10:01 阅读:892次
*温馨提示:点击图片可以放大观看高清大图
简介:我们了解了指针的作为传递地址的功能,现在我们写一段代码实现一下使用指针传递一个数组的实现过程。我们需要从一组数据:34 ,56, 1, 0, -100, 34, 89, 999数据中挑选最大的数据并且输出。
我们了解了指针的作为传递地址的功能,现在我们写一段代码实现一下使用指针传递一个数组的实现过程。我们需要从一组数据:34 ,56, 1, 0, -100, 34, 89, 999数据中挑选最大的数据并且输出。
运行结果
从结果可以看出我们查询到了该数组中的最大数。如果我们现在要查询另外一个数组的最大值是不是也需要布上面函数重新写一遍呢?不需要的,我们看看以下代码
输出结果
与上一段代码的不同之处是,我们在这里使用函数int checkMax(int *pBuf, int len).并且使用指针作为参数,将需要处理的数组起始地址传递给该函数。为了对数组的大小做出说明,我门通过len对地址的边界进行了限制。
虽然使用函数的运行 效率可能第一点,因为函数调用需要保存MCU当前寄存器中的值,并且需要参数的传递、、以及当函数执行结束后寄存器值得恢复。但是如果我们不在乎这点时间开销,可以使用以前编写相对成熟的代码,提高我们的编写工作效率,增加了程序可读性、可维护性、以及安全性。
因为有些代码也许已经运行了几十年。凝结前辈高手的经验。可以是是我们事半功倍。所以在时间要求不严的情况下还是建议使用函数。
在这个小节中,我们看到指针作为参数在传递参数时效率非常高。有人认为指针非常难于理解。可能因为工作的原因。我认为在MCU上编写代码工程师应该不存在这个问题。因为指针就是地址变量。只要理解了这个问题已解决了一大半。如果再知道数据在内存中的存在形式。一般使用应该没有问题的!