zoukankan      html  css  js  c++  java
  • C语言指针专题——为何要学习指针

    欢迎转发本文!

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

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

    1. 数组处理

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

    #include "stdio.h"
    
    sort(参数)
    {
        //代码实现
    }
    
    int main(void)
    {
        int number[5] = {1,2,3,4,5};
    
        printf("数组元素原来的顺序是:
    ");
        for(int index = 0; index < 5; index++)
        {
             printf("%d ", number[index]);
        }
    
        sort(参数);//给数组排序,数组元素由大到小
    
        printf("数组元素排序后的顺序是:
    ");
        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
    ", para1, para2);
    
        return 0;
    }

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

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

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

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


  • 相关阅读:
    Springboot配置多数据源Rabbitmq
    SpringBoot 搭建 Rabbitmq
    SpringBoot 成Rabbitmq的疑惑记录
    Docker安装Redis关于Mounts denied解决
    使用Preferences写入注册表
    RSA解密报错 javax.crypto.BadPaddingException: Decryption error
    星座和生肖转化
    bio与nio
    跳表
    springboot+dubbo+zookeeper
  • 原文地址:https://www.cnblogs.com/itblog/p/7236546.html
Copyright © 2011-2022 走看看