c语言函数传地址调用 C语言函数传地址

C语言函数调用中怎么判断是地址传递还是值传递

根据参数类型以及函数实现的功能综合判断。

创新互联专业为企业提供和顺网站建设、和顺做网站、和顺网站设计、和顺网站制作等企业网站建设、网页设计与制作、和顺企业网站模板建站服务,10年和顺做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

注意不能单单看是否为指针。

要传递类型为A的值,如果参数类型是A*,那么为传地址,反之,如果参数类型是A,那么是传值。

比如,要传递int型参数:

1 传值:

void func(int a);

2 传地址:

void func(int *a);

而传递char *型参数。

1 传值:

void func(char *a);

2 传地址:

void func(char **a);

同样是char *类型的参数,有可能是传值,也有可能是传地址。具体取决于函数实现功能。

C语言传地址调用

1、值传递:不管怎么传,原来的实参的值都不会改变。

地址传递,原来的实参的值可能被改变。

打个比方:

值传递就好象你告诉别人你的帐户里有多少钱 帐户里的钱不会改变。

地址传递就好象你告诉别人你的帐户密码 帐户里面的钱可以被改变。

2、例如:

#includestdio.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';}//加上这一句就变了

C语言能通过函数的地址调用函数吗?

可以通过函数指针(也就是你说的函数地址)调用,可以这样使用:

#include

int

fun(int

a)

{

printf("a

=

%d\n",

a);

printf("hello

world\n");

}

int

main()

{

int

(*pFun)(int

a);

pFun

=

fun;

(*pFun)(123);

return

0;

}

输出结果:

123

hello

world


分享文章:c语言函数传地址调用 C语言函数传地址
分享URL:http://ybzwz.com/article/dodiehs.html