用指针变量作为函数参数

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:45:29
用指针变量作为函数参数, 在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来,这样就实现了”通过调用函数使变量的值发生了变化,在主调函数(如main函数)中使用这些改变了值”的目的.
为什么用指针变量作为函数参数就可以?
不用指针变量, 实参 值传递 的方式单向传到 形参, 那么只改变调用函数里的值,没有回传到实参来,
那么,用了指针变量, 值是怎么到实参来的?
谭浩强 的第2版 例题10.2 , 指针的那章, 明确说了不是将形参值传回实参的

指针其实就是地址,例如
int a=3;
int *p=&a;
这时p就是一个指针,它的值就是a在内存中地址,&是取地址的意思,

在函数调用中用了指针作形参,那么调用函数时候实参传递给函数的是参数的地址,函数在执行的过程中会根据这个传过来的地址去对那个变量进行运算。最后会把这个变量的值改变。
用引用也是用地址实现这种传递法。

不用指针变量,则函数在调用时会在内存另外一个地方再开启内存,传递过来的值交给了这个新开启的内存。函数在执行过程中则只对这部分新开启的内存变量操作,结束后不会返回值,

所以,指针变量其实就是通过地址来改变主函数中变量值

指针就是一个地址,用指针传递就是传递一个地址,你对一个地址所对应的内存操作,当然就会在被调函数中改变调用函数的变量的值。

指针变量指向的是地址。改变内存单元的内容