问题遇到的现象和发生背景
void fun ( int *p )
{ (*p)++;
}
main( )
{ int a=5;
fun(&a);
printf("%d",a);
}
在定义函数时,定义不同类型的形参,会影响后面实参的调用。
如果你的形参定义为一个普通的变量,比如 int a,那么后面在实际调用的时候,
系统会拷贝实参的一个副本供函数使用。
在函数内部使用的是实参的副本,所以任何操作不会改变原来的值。
而如果使用指针或者引用操作,函数内部使用的就是实际的值,不会生成一个实参的副本。所以此时在函数内部的操作,会改变原值。