| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:求助,被指向指针的指针弄迷糊了,下面的程序怎么也读不明白
取消只看楼主 加入收藏
suv121
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
求助,被指向指针的指针弄迷糊了,下面的程序怎么也读不明白
程序代码:
#include<stdio.h>

char x,y,z;
void assp(char **p,char pref);
  main()
{
  char *a,*b,*c,ta,tb,tc;
  printf("请输入三位男士的选择对象:\n");
  scanf("%c%c%c",&ta,&tb,&tc);
  getchar();
  assp(&a,ta);
  assp(&b,tb);
  assp(&c,tc);
  printf("请输入三位女士的选择对象:\n");
  scanf("%c%c%c",&x,&y,&z);
  if(*a=='a')printf("A is LUCKY\n");
  if(*b=='b')printf("B is LUCKY\n");
  if(*c=='c')printf("C is LUCKY\n");
} 
void assp(char **p,char pref)
{
    switch(pref)
    {
        case 'x':*p=&x;break;
        case 'y':*p=&y;break;
        case 'z':*p=&z;break;
    }
}
2014-06-18 17:06
suv121
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-25
收藏
得分:0 
回复 2 楼 蚕头燕尾
谢谢你的回答,但是这涉及到双向选择的问题,如果不用指针真想不出别的解决办法来
2014-06-19 10:21
suv121
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-25
收藏
得分:0 
回复 3 楼 砖家的谎言
程序执行到scanf("%c%c%c",&x,&y,&z);时,指针*p指向x的地址,所以switch里是*p=&x;如果直接是**P=x,程序执行到assp时会陷入死循环
2014-06-19 10:37
suv121
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-25
收藏
得分:0 
回复 3 楼 砖家的谎言
程序中还有个问题不明白,assp里的形参在定义是分别是个二维指针和字符变量void assp(char **p,char pref),但是在调用时assp(&a,ta)怎么变成&a了,我的理解是&a是指针a的地址。但是**P和&a怎么也不等价啊。
2014-06-19 10:43
快速回复:求助,被指向指针的指针弄迷糊了,下面的程序怎么也读不明白
数据加载中...
 
   



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

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