首页   |   IT资讯   |   综合资讯   |   开发   |   软件   |   问答   |   网络技术   |   网络综合
更多:
当前位置:首页 » 手机数码
文章正文

很容易的指针问题!!!

类型:转载   责任编辑:asp   日期:2007/03/01

    

本人刚开始学习指针,对下面这段程序中的*p在这段程序中的运用不太明白,  
  请各位指教一下,请详细点  
  #include<stdio.h>  
  #define   n   4  
  input   (int   *p)  
  {int   i;  
  printf("input   data:");  
  for(i=0;i<n;i++,p++)  
  scanf("%d",&(*p));  
  }  
  min_max(int   *p)  
  {int   *max,*min,*q;  
  int   i=0;  
  max=min=q=p;  
  for(;i<n;i++,q++)  
  {if(*q>*max)max=q;  
  else   if(*q<*min)min=q;  
  }  
  *q=*p;*p=*min;*min=*q;  
  *q=*(p+n-1);*(p+n-1)=*max   ;*max=*q;  
  }  
  output   (int   *p)  
  {int   i;  
  for(i=0;i<n;i++,p++)  
  printf("%d",*p);  
  }  
  main()  
  {int   a[n];  
  input(a);  
  min_max(a);  
  output(a);  
  }  
 

推荐阅读

  • 甲骨文将推新版服务器 与微软等展开价格战 [详细内容]
  • 从神舟到Z60T:四款笔记本对决极品飞车 [详细内容]
  • 万能DVD刻录:宏碁14寸宽屏笔记本5999 [详细内容]
  • 电信价格战激烈之时出台 204号文件“拉偏架”? [详细内容]
  • 关于小三的电池 [详细内容]
  • 传言四起 明基要退出台湾MP3市场? [详细内容]
  • 价格战“白热化” 双模小灵通分食移动业务 [详细内容]
  • 网友回答:
    网友:plainsong

    scanf("%d",&(*p));  
      如果p是个真正的指针,相当于scanf("%d",   p);  
       
      min_max(int   *p)  
      {  
          int   *max,*min,*q;  
          int   i=0;  
          max=min=q=p;  
            for(;i<n;i++,q++)  
          {  
              if(*q>*max)  
                  max=q;  
              else   if(*q<*min)  
                  min=q;  
          }  
          *q=*p;//内存访问越界!这时q   =   &a[n]  
          *p=*min;  
          *min=*q;  
       上面三句话是利用a[n]作为临时变量把最小的元素和第一个元素交换,下面三句是把最大的元素和第一个元素交换,由于a只有n个元素,所以有了一个访问越界的错误,应该在这里定义一个临时变量并用它完成交换。  
          *q=*(p+n-1);  
          *(p+n-1)=*max   ;  
          *max=*q;  
      }

    网友:callzjy

    to     plainsong(伤心的风★短歌)  
      ------------------------------------  
      你在乱讲!!!  
       
      按你程序输出结果是  
      ------------------------------------  
      input   data:100  
      56  
      12  
      2  
      100  
      56  
      12  
      2  
      press   any   key   to   continue  
       
      ----------------------------------------------------------------  
      下面由我来讲吧,plainsong(伤心的风★短歌)及楼主听好了

    .
      最佳浏览:1024X768 MSIE
    ©2007 jqmk.com.cn All Rights Reserved