C语言函数传值与传址区分
第一次开通博客,复习一下C语言函数调用的基础知识,关于函数的传值和传址调用。
1、传值调用,先看简单的例子
int function(int b){
b++;
return b;
}
int main(){
int p=1;
printf("调用函数输出的值:%d\n",function(p));//输出结果为2
printf("p的值:%d",p); //输出的结果为1
return 0;
}
从上面的结果可以看出,这里的函数使用的传值调用,参数p的结果没有因为函数的执行而改变
2、传址调用
int function(int *b){
(*b)++;
return *b;
}
int main(){
int p=1;
printf("调用函数输出的值:%d\n",function(&p));//输出为2
printf("p的值:%d",p); //输出的结果为2
return 0;
}
这里使用传址调用,参数传递的是p的地址,对地址指向的内容执行操作,那么其内容自然而然也就发生改变,这里还是很易理解滴!