1. c语言中 函数参数只作用于函数内部,
#include <stdio.h>
void test_func_ptr (int a)
{
printf ("%d \n", a);
a = 100;
printf ("%d \n", a);
}
int main (void)
{
int c = 10;
test_func_ptr (c);
printf ("%d \n",c);
return 0;
}
这个输出的结果 为10,100,10. 造成这个的原因是进入函数是会开辟新的内存在栈中,在函数执行完成后会弹出,但是原来mian中额c值并不会变化。如果要对c施加影响需要传入指针,例子如下
#include <stdio.h>
void test_func_ptr (int *a)
{
printf ("%d \n", *a);
a = 100;
printf ("%d \n", *a);
}
int main (void)
{
int c = 10;
test_func_ptr (&c);
printf ("%d \n",c);
return 0;
}