欢迎转发本文!

之前的文章与各位谈论了指针是什么,以及指针为何这那么难学。不少知友留言说看了我的文章对指针了解了不少,这给我继续创作提供了莫大的动力啊。指针其实就是一个纸老虎,你看着可怕,等你了解其本质后,你会对其不屑的。

这一篇来聊聊为什么要用指针,或者说,在什么场景下必须要用指针,也就是给我们一个学习指针的理由,否则为何要去学指针,那不神经病嘛。本文列举了两个需要用到指针的场景,知友们可以留言继续补充。

1. 数组处理

数组处理是最需要用到指针的,其中一个场景的程序代码如下:

#include "stdio.h"

sort(参数)
{
//代码实现
} int main(void)
{
int number[5] = {1,2,3,4,5}; printf("数组元素原来的顺序是:\n");
for(int index = 0; index < 5; index++)
{
printf("%d ", number[index]);
} sort(参数);//给数组排序,数组元素由大到小 printf("数组元素排序后的顺序是:\n");
for(int index = 0; index < 5; index++)
{
printf("%d ", number[index]);
} return 0;
}

代码很简单,想在函数sort中实现对数组元素由大到小的排序。那么如果你不想给sort函数传递指针的话,那你给函数sort传递什么参数呢?

2. 两值交换

两值交换在各大考试中是考的最多的了,比如如下程序:

#include "stdio.h"

change(参数)
{
//代码实现
} int main(void)
{
int para1 = 1;
int para2 = 2; change(参数);//在change函数中实现para1和para2的值交换 printf("交换值后,para1的值是%d, para2的值是%d\n", para1, para2); return 0;
}

代码中,定义了两个int变量,要在change函数中实现两者的值的交换,如果不考虑指针的话,有什么办法能做到吗?

也许还有其它的很多例子可以用来说明使用指针的必要性,结合上述两个例子来看,在程序中,有时候我们必须要操作内存,此时使用指针就是最好的选择。

明白了使用指针的必要性,我们才有理由学习指针,并且学好它。

欢迎关注我的微博与微信号:C语言编程技术分享

最新文章

  1. bat 延时删除指定文件夹中的文件经验分享
  2. NEFU 84 五指山 (扩展欧几里得)
  3. 12. Binary Tree Postorder Traversal &amp;&amp; Binary Tree Preorder Traversal
  4. linux文件系统模拟
  5. sublime text3083 破解 插件汉化
  6. C#_DataTable导出Execl为自定义标题
  7. centos7.2安装配置
  8. apache vhost 访问权限配置
  9. 【转载】C#后台声明式验证,远离if验证
  10. gcc 生成动态库时-fpic选项是什么意思。
  11. VelocityTracker简单介绍
  12. Snap.svg中transform旋转值的“r+数组”表现形式
  13. Tomcat日志catalina.out文件过大的处理方法
  14. iOS实现白板、画板功能,有趣的涂鸦工具,已封装,简单快捷使用
  15. js字符串操作总结
  16. Unreal 4 error 记录
  17. 本地安装MySQL详细教程
  18. Spark大型电商项目实战-及其改良(4) 单独运行程序发现的问题
  19. C# 文件比较差异
  20. UI基础三:简单的BOL报表开发

热门文章

  1. &lt;转&gt;C# 动态创建DataTable
  2. Win8Metro(C#)数字图像处理--2.23二值图像开运算
  3. imp dll时遇见的非常恶心的问题
  4. 零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上)
  5. shell脚本配置ssh免密登陆
  6. Interactive Data Display如何显示菜单?
  7. CentOS 7 配置163源
  8. Android零基础入门第28节:轻松掌握RelativeLayout相对布局
  9. C++ 使用回调函数的方式 和 作用。 持续更新
  10. Qt中实现单例模式(SingleTon),大约有3种办法