2.指针传递,把当前变量指针传到下一个函数,在另外函数里边修改指针的值会修改当前变量值
#include <stdio.h>
void func(int *p){
*p = 9
return
}
void swap(int *a, int *b){ //交换两个变量的值
int temp = *a
*a = *b
*b = temp
}
int main(void){
int a = 0
func(&a)//要修改一个变量,把他的地址传过去
printf("%d",a)//9
int b = 3int c = 4
swap(&b,&c)
return 0
}
当传递的数,不止一个的时候,或者要改变参数值得时候返回实参的值得时候。就用传递地址。例如:
getct(int
*a,int
*b)
{
printf("%d
%d",*a,*b)
}
mian()
{
int
x=5,y=3
int
*s,*z
s=&xz=&y
getct(s,z)
}
1、值传递:不管怎么传,原来的实参的值都不会改变。地址传递,原来的实参的值可能被改变。
打个比方:
值传递就好象你告诉别人你的帐户里有多少钱 帐户里的钱不会改变。
地址传递就好象你告诉别人你的帐户密码 帐户里面的钱可以被改变。
2、例如:
#include<stdio.h>
point(char *pt)
main()
{char b[4]={'m','n','o','p'},*pt=b
point(pt)
printf("%c\n",*pt)
}
point(char *p)
{p+=3
*p='F'}//加上这一句就变了