void fun ( int *p )
{ (*p)++;
}
main( )
{ int a=5;
fun(&a);
printf("%d",a);
}
在定义函数时,定义不同类型的形参,会影响后面实参的调用。
如果你的形参定义为一个普通的变量,比如 int a,那么后面在实际调用的时候,
系统会拷贝实参的一个副本供函数使用。
在函数内部使用的是实参的副本,所以任何操作不会改变原来的值。
而如果使用指针或者引用操作,函数内部使用的就是实际的值,不会生成一个实参的副本。所以此时在函数内部的操作,会改变原值。
fun函数使得a所存储的值加一了
可以理解为 * p=&a;
(* p)++ 会对 *p指向的地址中的变量值+1
也就是a++
&a=a=5;
*p=&a=a,即把a的值赋值给p指向的地址的值,然后p的地址从5自加到6。
有用的话,采纳一下,谢谢!