父子函数的调用

我们要向交换两个数,先进行一个简单的程序:

父子函数的调用

可是经过检验后我们发现,两个数中,当printf放在子函数时是可以交换的,放在下边的main函数(父函数)却不能交换,什么原因呢?

这里需要解释一下:当父函数调用子函数,子函数的值要是想改变,必须满足下边两个条件---

1.传指针

2.解引用

这里就引入了指针这个知识点。我们每个人都有属于自己的身份证号,而指针就相当于专属的一个地址,也是独一无二的。我们利用指针给每个变量分配一个独一无二的地址,就跟去你家找你敲你门家门一样,前提是你要在家。然后我们的程序变成了这样:

父子函数的调用

记住两点:1.指针就是地址。2.解引用就是返回指针指向的变量的值。

在这呢我们要了解一下NULL指针

NULL指针的意思是标识当前指针为无效指针,对已经置空的指针进行解引用的话程序会崩溃的,如:

父子函数的调用

这个程序崩溃是不容质疑的,那么请看下一个程序:

父子函数的调用

运行这个程序后我们发现和我们想的不一样,程序正常运行,原因在于这个变量解引用之后已经是一个值,然后再将它置空是没有意义的,而我们要是想让NULL这个指针发挥作用我们就要使得传回的是一个指针,可以在进行一次解引用,然后将它置空,使得NUll指针发挥作用

父子函数的调用

好了,问题到此结束