zoukankan      html  css  js  c++  java
  • 使用指针做形参来解决函数的副本机制

    /*在函数里面改变一个外部变量,就需要变量的地址

        如果是数据,需要指向数据的指针存储数据的地址

    如果是指针,就需要指向指针的指针存储指针的地址

    //二级指针一般用于改变一个字符串指针的指向,指向不同的字符串

    */

     #include<stdio.h>

    #include<stdlib.h>

    char str1[20] = "notepad";
    char str2[20] = "tasklist";
    /*
       把这两个字符数组作为全局变量

    */

    // 函数有副本机制,形式参数会开辟内存,新建一个变量,容纳传递过来的实际参数的值

    void change(char** _p2)
    {

    /*
    现在我需要写一个函数能够更改 p变量的值,该怎么做呢???

    我们要更改一个变量,需要该变量的地址,如果变量是指针就需要二级指针

     更改一个变量的值:  只有通过地址的形式访问该变量然后对其进行修改重写

    因此,我们可以把传递过来该变量的地址即:该变量的指针

    */

    *_p2 = str1;  //改变指针的指向

     }

    void main()

    {

    char *p = str1;    //指针指向字符串
    /*
    当创建一个指针指向一个字符串时,*p 就是字符串的内容

    */

     printf(" %p ", &p);   //打印指针地址

     char ** p2 = &p;

    change(p2);

     system(p);

    getchar();

    }

  • 相关阅读:
    post和get请求
    博客开通了
    【树形动态规划】【CTSC1997】选课 解题报告
    【动态规划】天堂(Heaven) 解题报告
    [NOIP2013]积木大赛
    [树状数组+逆序对][NOIP2013]火柴排队
    [快速幂][NOIP2012]转圈游戏
    [前缀和+二分]借教室
    [字符串]TrBBnsformBBtion
    [NOIP2012]国王游戏
  • 原文地址:https://www.cnblogs.com/linux-bfbdxj520/p/10429458.html
Copyright © 2011-2022 走看看