欢迎转发本文!

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

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

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语言编程技术分享

C语言指针专题——为何要学习指针的更多相关文章

  1. C语言指针专题——如何理解指针

    本文为原创,欢迎转发! 最近在研读C primer plus 5版中文版,老外写的,还是很经典的,推荐给读者们,有需要的朋友可以在这里购买:C primer plus 5版中文版 指针,传说中是C语言 ...

  2. C语言指针专题——指针怎么就很灵活?

    最近在研读 C Primer pkus(第五版)中文版,老外写的还是很经典的,推荐给朋友们,购买地址:C primer plus 5版中文版购买 另外再推荐两本书: 1. 2017年9月全国计算机二级 ...

  3. C语言 第八章 函数、指针与宏

    一.函数 函数是一个包含完成一定功能的执行代码段.我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的.外部程序 ...

  4. C语言核心之数组和指针详解

    指针 相信大家对下面的代码不陌生: int i=2; int *p; p=&i;这是最简单的指针应用,也是最基本的用法.再来熟悉一下什么是指针:首先指针是一个变量,它保存的并不是平常的数据,而 ...

  5. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

  6. c语言指针函数与函数指针

    例一:指针函数 指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针 类型标识符    *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个 ...

  7. 深入理解C语言中的指针与数组之指针篇(转载)

    前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...

  8. c语言指针数组与数组指针

    一.指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别.其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是“储存指针的数组”的简称.数 ...

  9. 娓娓道来c指针 (0)c语言的梦魇:c指针

    (0)c语言的梦魇:c指针 序 c语言中有一个重点:c指针.它也是一个难点.当然,这是一句废话:重点往往也是难点.在c标准中,对指针的定义是这种: 指针的类型是derived from其他类型,也就是 ...

随机推荐

  1. WPF开发之限制输入的控件---------转自CDSN

    原文地址 http://blog.csdn.net/ghosind/article/details/51627601 作者 ghosind 一,正则表达式过滤字符串 if (RegexString = ...

  2. Linux下C语言RPC(远程过程调用)编程实例

    在查看libc6-dev软件包提供的工具(用 dpkg -L libc6-dev 命令)的时候,发现此软件包提供了一个有用的工具rpcgen命令.通过rpcgen的man手册看到此工具的作用是把RPC ...

  3. 微信小程序把玩(三十三)Record API

    原文:微信小程序把玩(三十三)Record API 其实这个API也挺奇葩的,录音结束后success不走,complete不走,fail也不走, 不知道是不是因为电脑测试的原因,只能等公测或者等他们 ...

  4. Mac App Store应用签名和pkg签名(必须签名后才能销售)

    App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...

  5. mysql三种修改密码的方式

    [root@MySQL ~]# mysqladmin -uroot -proot -S /data/3307/mysql.sock password '123'; 其中-p是现在的密码,passwor ...

  6. EasyUI 实现编辑功能,给Combobox 赋值

    1: <input id="RequestType" name="RequestType" class="easyui-combobox&quo ...

  7. 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(3)

    第一章 表现模式关注分离(soc)是企业及软件开发中非常有用的核心原则,也是许多表现模式背后的驱动力量.在WPF和Silverlight开发中,MVVM成为了实现关注分离最为有效的设计模式.然而,这种 ...

  8. 如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)

    Office 扩展应用(Office Apps,Office 2013 AddIns,Apps for Office)开发 —— 中文文档 继 VBA 和 VSTO 之后, 微软为 Office 平台 ...

  9. Delphi产生任务栏图标【TNotifyIconData】

    一.新建一个应用程序:File->New Applicaton 在Interface部分要放在Uses Message之后,定义一个消息常量:const WM_NID=WM_USER+1000; ...

  10. wpf中的datagrid绑定操作按钮是否显示或者隐藏

    如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了. 但是在wpf里不行..网上 ...