我看到你对一条回答的追问,感觉可能get到你的点了。
#include <stdio.h>上面这个函数最后输出的值是12.
void increase(int *a)这个函数传入的是指针,a这个参数在increase函数调用结束后确实就会被释放,但a是一个指针,释放的是这个指针!但是你仔细看increase这个函数体里,已经对a这个指针指向的内容做了更改:*a = *a + 1; 我们修改的并不是a而是a指向的内容也就是h的值,所以h的值已经被改变了!
追问嗯!这个我似乎有点明白了,但如果形参不定义指针,就是普通变量呢?像数组之类的又是这样吗
因为今天我刚好看到一道题就是利用选择法在被调用函数中排序,然后再返回数组给主函数
追答数组可不是普通变量。
你可以研究一下 参数是数组的话大部分时候就是当指针用。
通过全局变量实现修改
通过函数的指针参数完成返回
通过函数的引用参数完成返回
也可以把数组作为参数直接在函数中修改
可是不是说形参被调用完之后,就是被调用函数结束后,其中的值马上就会被释放掉吗,那它是如何实现值传递给主函数的呢?
而且值传递是单向的。
什么意思?。。