C语言学习笔记--------伊能C语言学习笔记----使用指针来解决函数的副本机制

使用指针做形参来解决函数的副本机制:


/*
在函数里面改变一个外部变量,就需要变量的地址
    如果是数据,需要指向数据的指针存储数据的地址


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




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


*/






#include


#include


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


*/




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


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




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






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


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


*/

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




}


void main()


{


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




*/




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




char ** p2 = &p;


change(p2);






system(p);




  


getchar();
}

你可能感兴趣的:(C语言学习笔记)