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

时间:2019-11-27
本文章向大家介绍c语言:当指针成为参数后,主要包括c语言:当指针成为参数后使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

  • 两个数字从小到大排序(引申的业务场景,对企业大佬的银行存款金额进行排序,这当然通过交换变量对应的数值来实现,否则盖茨大爷的钱可能全交换到我的账户下来,靠谱的做法是声明(或者说引入)指针变量,用来按照从小到大的顺序标的(指向)不同账户下的金额)
#include<stdio.h>
#include<stdlib.h>
void main()
{
    double *pa, *pb,*tmp;
    double a, b;

    printf("请输入两个数,排列其大小\n");
    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("\n数组作为参数的大小%d", sizeof(a[10]));
    //输出的值为4,这可以算是以形式参数传值的一个特例:a[10]实际上是a这个数组首元素的地址,指针变量长度为4,无论他是整型数组指针还是浮点亦或是字符数组
    for (int i = 0; i < 10; i++)
    {
        a[i] = 9 - i;
        printf("元素逆序之:%d\n",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\n",sizeof(num));
    arrayasparam(num);
    int a = 66;
    fakeparam(a);
    printf("a的值是%d\n", a);
    needleparam(&a);
    printf("a的值是%d\n", a);//这个厉害,按照地址按图索骥完成了值的修改
    system("pause");
}

原文地址:https://www.cnblogs.com/saintdingspage/p/11941591.html