A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

#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;
    }
}

评分

参与人数 1技术分 +1 收起 理由
ios风痕 + 1

查看全部评分

2 个回复

倒序浏览
  1. #include<stdio.h>

  2. char x,y,z;
  3. void assp(char **p,char pref);
  4.   main()
  5. {
  6.   char *a,*b,*c,ta,tb,tc;
  7.   printf("请输入三位男士的选择对象:\n");
  8.   scanf("%c%c%c",&ta,&tb,&tc);
  9.   getchar();
  10.   assp(&a,ta);//第一步:重点就在这里,a是一个char指针 那么&a就是一个指向指针a的指针,假设表示为~a
  11. //下面进入函数内部去看看
  12.   assp(&b,tb);
  13.   assp(&c,tc);
  14.   printf("请输入三位女士的选择对象:\n");
  15.   scanf("%c%c%c",&x,&y,&z);//第三步:输入变量x的内容,因此就是指针a指向的内存的内容,然后做一个匹配
  16. //个人感觉这个题没有什么意义,而且思路也不清晰!
  17.   if(*a=='a')printf("A is LUCKY\n");
  18.   if(*b=='b')printf("B is LUCKY\n");
  19.   if(*c=='c')printf("C is LUCKY\n");
  20. }
  21. void assp(char **p,char pref)
  22. {
  23.     switch(pref)
  24.     {
  25.         case 'x':*p=&x;break;//第二步:来到函数内部,*p实际上是对指向指针的指针~a,进行一次接触引用,那么得到
  26. //的内容就应该是~a里存储的内容,那么~a里存储的就是指针a的地址,那么这句代码的意思就是,将变量X的
  27. //地址,复制给指针a,那么指针a所指向的内存里存储的内容就是变量x的内容,回到主函数里
  28.         case 'y':*p=&y;break;
  29.         case 'z':*p=&z;break;
  30.     }
  31. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报

实在是太谢谢你了,分析的很透彻  ,让我很容易看明白,谢谢啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马