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

 我来答
风若远去何人留
2015-12-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
根据参数类型以及函数实现的功能综合判断。
注意不能单单看是否为指针。
要传递类型为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 *类型的参数,有可能是传值,也有可能是传地址。具体取决于函数实现功能。
想爱你而又不能
2010-09-14 · TA获得超过1477个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:224万
展开全部
在运用的过程中,如果是能够直接用的,如楼上的
void test2(int i) // 传值
{
}
中i是可以直接用的,就是值传递;

void test1(int * p) // 传地址
{
}
中需要取地址中的内容的,如需要*p来取所指向的值的,就是传地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2015-09-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6570万
展开全部
这是伪命题!在C里传递给形式参数的都是实参的“值拷贝”,没有传递实参地址的!有争议的可能就是指针的传递——其实,形参要求是指针,把实参所具有的地址“值”拷贝了一份赋给了形参,并没有传递实参指针变量的地址!
(201509240152答的)
看到相同意思的答案了,投诉应该。当时没有出现啊……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶小怜
2010-09-14 · TA获得超过408个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:262万
展开全部
C里面就只有按值传递,其实没有按地址传递这一说,通常所说的按地址传递,也是传值,只不过传了一个复制的指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海猫络合物QAQ
2010-09-14 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:107万
展开全部
C语言调用参数传递地址的话需要使用指针作为参数,如:

void test1(int * p) // 传地址
{
}

void test2(int i) // 传值
{
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式