| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 786 人关注过本帖
标题:还是请教小代码,一眼就看完,不长!
取消只看楼主 加入收藏
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
结帖率:76.92%
收藏
已结贴  问题点数:5 回复次数:3 
还是请教小代码,一眼就看完,不长!
#include "stdio.h"

int *max(int *pa);        /*声明函数*/
int *max(int *pa){        /*定义函数*/

   int x,y;
   printf("Please enter two number:\n");
   scanf("%d%d",&x,&y); /***声明两个变量,用于保存用户输入的两个值***/

   if(x>y) {pa=&x;return pa;}
   else {pa=&y;return pa;}    /****比较两个值的大上,保存较大值,并返回*****/
}      /********************函数到此结束*************************/

main(){
int *pa;
int *mm; /****声明两个指针变量,其中变量pa用于存放调用函数后的返回值****/
         /****并且将pa值另存入于变量m中*********************************/
         /****将变量取名于mm,完全是引起大家对此变量的注意**************/

printf("The big number is:%d\n",*(mm=max(pa))); /*显示大值*/
printf("The big number is:%d\n",*mm);           /*显示大值*/
  
getch();
}
现在的问题是,两次调用的printf所显示的值,是否一样??并请解释!









谢谢!
搜索更多相关主题的帖子: 代码 
2010-07-05 21:02
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
没用过VC6.0,是否可以按原来试验一下?看第一个printf("The big number is:%d\n",*(mm=max(pa))); 能否显示,谢谢你了。

我没有安装VC,谢谢!
盼复!!
2010-07-05 21:59
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
因为我当时想验证一个理论:永远不会返回指向于某一函数的局部变量的指针。所以把pa指向于一个局部变量,然后再返回这个指针,看看会怎么样。
2010-07-10 21:30
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
以下是引用灯、、在2010-7-10 21:29:15的发言:

第一个不可以输出结果,我用的是VC++6.0环境



我用的是MinGW,两行的结果都可以输出来,但是输出结果不一样,并且第一个的结果是正确的,也就是说第一个输出的结果能够把较大值选出来,但是第二个显示的结果是一大串数字,不知道是什么。

20100710212943734.rar (5.62 KB)


[ 本帖最后由 mashrb 于 2010-7-10 21:35 编辑 ]
2010-07-10 21:32
快速回复:还是请教小代码,一眼就看完,不长!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021687 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved