C语言中,这两道题有区别吗?分别是对的还是错的?为什么? 50

 我来答
叔伯老表
2017-01-10 · TA获得超过1256个赞
知道小有建树答主
回答量:698
采纳率:0%
帮助的人:259万
展开全部
两个都是错的。

3、指针变量传递的是地址的数值,所以还是值传递方式;
5、因为指针变量传递的是地址的数值,所以这个地址里面的数值被操作后,不会被销毁,但函数做的仍然是数值操作。
3是明显的错,5是给一句真话,让了解的不太深的人以为后面的结论也是真的。
吴道子2011
2017-01-10 · TA获得超过1107个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:375万
展开全部
第三个是错的,就算以指针为参数,如果你传入的是一个指针,那也是相当于传入指针的拷贝,相当于按值传递。比如
#include<stdio.h>
int quan=100;
void change(int * p)//指针参数
{
p=quan;
}
int main()
{ int a=9;
int *pi=&a;

change(pi);//以指针作为变量,传入的是指针p的一份拷贝,相当于指针pi的值传递给函数中的p,而p与pi都是指向变量的,在函数中修改了p,而并没有修改pi。

printf("%d\n",*p);//所以输出仍然是9
return 0;
}
第五个也是错的吧,说的很混乱,返回函数中处理的数据,这个不假,什么叫此时函数传递。
还是以上面函数为例
int change(int * p)//指针参数,返回int类型
{
p=quan;

return *p;
}
在main中要定义参数接受返回值,是按值传递的 int f=change(p);
int * change(int * p)//指针参数,返回int指针类型
{
p=quan;

return p;
}
在main中还是要定义参数接受返回值,也是按值传递的 int *f=change(p);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式