| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 bluecn2002 于 2018-12-10 10:13 编辑  
 
/**************************/ 
/*用指针与函数实现两数比较*/ 
/**************************/ 
 
#include<stdio.h> 
 
int *max, *min;  //全局变量 
 
void main() 
{ 
        int a, b; 
        int maxmin(int x, int y); 
 
        printf("input two numbers: \n"); 
        scanf("%d%d",&a,&b); 
 
        maxmin(a, b);   //跑到这还是正确的 
 
        printf("max is %d ,min is %d \n", *max, *min);  //过这一步max成了min. 
} 
 
int maxmin(int x, int y)   //x>y正常。x<y错一半。 
{ 
                if (x>y)  
        { 
                max = &x; min = &y; 
        } 
        else 
        { 
                max = &y; min = &x; 
        } 
return 1; 
} 
//不用函数,只用指针,一切正常。
我猜你也应该是看了谭教授的巨著。 
- /**************************/
 
 -  /*用指针与函数实现两数比较*/
 
 -  /**************************/
 
  
- #include<stdio.h>
 
  
- int *max, *min;  //全局变量
 
 - void Max_Min(int *x, int *y);
 
  
- int main(void){
 
 -         int a, b;
 
 -         
 
 -         // int maxmin(int x, int y);    这个是函数申明吗! 写出去!
 
  
-         printf("input two numbers: \n");
 
 -         scanf("%d %d", &a, &b);
 
  
-         Max_Min(&a, &b);
 
  
-         printf("max is %d ,min is %d \n", *max, *min); 
 
  
-         return 0;
 
 - }
 
  
- /*
 
 - int maxmin(int x, int y) {
 
 -         //   这里的形参 x 和 y 说到底 还是变量!
 
 -         //  函数传值的过程是一个值拷贝的过程
 
 -         //  所以! 这里的x 和 y 有自己地址!且!生存周期只到这个函数调用结束!
 
 -         //  在函数调用结束之后, x 和 y 的内存就被释放了。或者说被操作系统回收了。
 
 -         //  Max 和 Min 保存了两个没有访问权限的地址!
 
 -         if (x > y)
 
 -         {
 
 -                 max = &x; min = &y;
 
 -         }
 
 -         else
 
 -         {
 
 -                 max = &y; min = &x;
 
 -         }
 
 -         return 1;
 
 - }
 
 - */
 
  
- void Max_Min(int *x, int *y) {
 
 -         if (*x > *y) {
 
 -                 max = x; min = y;
 
 -         }
 
 -         else {
 
 -                 max = y; min = x;
 
 -         }
 
 - }
 
 
  复制代码 
 
 
 |   
 
 
 
 |