c语言中的几个关于* &的指针问题还有构造函数问题(不要扯c++上去了)

一.构造函数方面的,比如说构造一个fun。intfun(inta,floatb,doublec,chard)这个比较好理解,但是有时候括号里面的量带有*符号比如myadd... 一.构造函数方面的,比如说构造一个fun。int fun(int a,float b,double c,char d)这个比较好理解,但是有时候括号里面的量带有*符号 比如myadd(int *a,int *b),此时main中的语句竟然是z=myadd(&x,&y);除了这个还有更不能理解的" 编写函数order(int *a,int *b),使调用函数中的第一个参数总是存放两个数中较小的数,第二个参数存放两个数中较大的数" void swap(int *a,int *b){*a=*a+*b;*b=*a-*b;*a=*a-*b;}  void order(int *p,int *q){ if(*p>*q)  swap(p,q);}main(){int i,j;printf("i,j=");scanf("%d%d",&i,&j);order(&i,&j);printf("i=%d j=%d",i,j);getch();} (注意红色部分 为什么不是&p &q?)二.还是构造函数方面的,构造了一个fun。void与return  。没有void,就一定有return吗? 有void,就一定没有return x吗? 若没有void,fun的{}除了以return x结尾外,好像还能以printf结尾对吗?除了return x,printf结尾,还能用什么结尾?有时候直接写"return;"而不是“return z ”这种形式(猜想可能是void fun),为什么?还有一个小问题 return 0;具体是什么意思啊?三.关于“如何通过指针把函数中的多个结果传回主函数”,函数体中有多个return时候 只执行第一个(我记得好像听过这么一句话),例如“请编写函数,对传送过来的三个数选出最大数和最小数,并通过形参传回调用函数”void func(int *x,int *y,int *z,int *max,int *min){ *max=(*x>*y?*x:*y)>(*x>*z?*x:*z)?(*x>*y?*x:*y):(*x>*z?*x:*z);*min=(*x<*y?*x:*y)<(*x<*z?*x:*z)?(*x<*y?*x:*y):(*x<*z?*x:*z);}   main(){ int a,b,c,max,min;scanf("%d%d%d",&a,&b,&c);func(&a,&b,&c,&max,&min);printf("max=%d min=%d\n",max,min);getch();return 0;}请高手细心解答,在下不胜感激,有高分相赠!  展开
 我来答
c1200123
2012-05-13 · 超过18用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:47.7万
展开全部
首先,对楼主的好学好问精神相当赞赏。
对于第一个问题,myadd中传递的两个参数是指针类型,而指针类型的变量中保存的值是内存地址,调用此函数时用&就是取对应变量地址之意。注意这* &两个符号的含义——取指针对应地址的内容和取内容对应的地址。
下一个问题,void意思是该函数结束时不会有返回值,故无return x之说,你要return x,编译器会报错的,return 0;则是函数返回值为零,函数定义时是有返回值的,即非void型函数。
第三个问题,因为在函数结束时,函数会释放它的堆栈,相应的局部变量(形参)将会释放掉,但是如果传的值是指针,函数中改变的内容将与函数堆栈内容无关,修改的是指针指向对应内存的位置,故可以作多个修改(传多个指针,修改多个指针指向的内存空间)。
最后一个问题,return的意思是函数返回,只要调用这一语句,函数即刻返回,该语句下的所有语句将不会被执行。

最后祝楼主的C语言之路越走越棒!!
国风地带
2012-05-14 · 超过10用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:22.1万
展开全部
其实这是关于指针的问题。在指针中,int* a表示设定一个指针,指针名字是a,指针指向的变量类型是整形,而光是*a则是表示调用调用指针所指向的变量的值,而&a则是指指针a在电脑中存储的地址。例如,int* a;int t=10;a=&t;则a中存入的就是变量t的内存地址,a=XCD487(随便写的值,指的是t的内存地址),同时,虽然a中存入的是t的内存地址,但是a也是一个变量,它也有内存地址,&a就是取a的内存地址,*a==t==10,因为*a取得是a所指向的变量的值嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laolifeidadao
2012-05-14
知道答主
回答量:7
采纳率:0%
帮助的人:3.7万
展开全部
问题的答案楼上的都说了,推荐你好好看下谭浩强的C程序设计,看完后这些问题就明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen950816
2012-05-14
知道答主
回答量:16
采纳率:0%
帮助的人:2.5万
展开全部
来学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式