• c语言:当指针成为参数后


    指针就是一种指向内存地址的变量,利用它的一些特性我们可以完成很多工作

    • 两个数字从小到大排序(引申的业务场景,对企业大佬的银行存款金额进行排序,这当然通过交换变量对应的数值来实现,否则盖茨大爷的钱可能全交换到我的账户下来,靠谱的做法是声明(或者说引入)指针变量,用来按照从小到大的顺序标的(指向)不同账户下的金额)
    #include<stdio.h>
    #include<stdlib.h>
    void main()
    {
        double *pa, *pb,*tmp;
        double a, b;
    
        printf("请输入两个数,排列其大小
    ");
        printf("输入金额1");
        scanf_s("%lf",&a);
        printf("输入金额2");
        scanf_s("%lf",&b);
        pa = &a;
        pb = &b;
        if (*pb < *pa)
        {
            tmp = pa;
            pa = pb;
            pb = tmp;
        }
        printf("从小到大顺序%f,%f",*pa,*pb);
        system("pause");
    }
    • 指针作为参数
    #include<stdio.h>
    #include<stdlib.h>
    
    void arrayasparam(int a[10])
    {
        printf("
    数组作为参数的大小%d", sizeof(a[10]));
        //输出的值为4,这可以算是以形式参数传值的一个特例:a[10]实际上是a这个数组首元素的地址,指针变量长度为4,无论他是整型数组指针还是浮点亦或是字符数组
        for (int i = 0; i < 10; i++)
        {
            a[i] = 9 - i;
            printf("元素逆序之:%d
    ",a[i]);
        }
    }
    
    void fakeparam(int mynum)
    {
        mynum = 10;
    }
    
    void needleparam(int *mynum)
    {
        *mynum = 10;
    }
    
    void main()
    {
        int num[10] = {0,1,2,3,4,5,6,7,8,9};
        printf("num数组的长度是%d
    ",sizeof(num));
        arrayasparam(num);
        int a = 66;
        fakeparam(a);
        printf("a的值是%d
    ", a);
        needleparam(&a);
        printf("a的值是%d
    ", a);//这个厉害,按照地址按图索骥完成了值的修改
        system("pause");
    }
  • 相关阅读:
    Maven 安装配置
    docker 安装 MySQL
    查看CentOS版本方法
    JavaScript定时器的开启关闭
    JavaScript实现延时提示框
    JavaScript获取当前时间
    JavaScript实现数字时钟功能
    JavaScript获取非行间样式
    JavaScript数组的操作
    JavaScript数组和json的区别
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11941591.html
Copyright © 2020-2023  润新知