黑马程序员技术交流社区
标题:
求助,被指向指针的指针弄迷糊了,程序读了半天也没理清楚
[打印本页]
作者:
剑气近
时间:
2014-6-18 23:21
标题:
求助,被指向指针的指针弄迷糊了,程序读了半天也没理清楚
#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;
}
}
作者:
huangqiwa
时间:
2014-6-19 00:13
#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);//第一步:重点就在这里,a是一个char指针 那么&a就是一个指向指针a的指针,假设表示为~a
//下面进入函数内部去看看
assp(&b,tb);
assp(&c,tc);
printf("请输入三位女士的选择对象:\n");
scanf("%c%c%c",&x,&y,&z);//第三步:输入变量x的内容,因此就是指针a指向的内存的内容,然后做一个匹配
//个人感觉这个题没有什么意义,而且思路也不清晰!
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;//第二步:来到函数内部,*p实际上是对指向指针的指针~a,进行一次接触引用,那么得到
//的内容就应该是~a里存储的内容,那么~a里存储的就是指针a的地址,那么这句代码的意思就是,将变量X的
//地址,复制给指针a,那么指针a所指向的内存里存储的内容就是变量x的内容,回到主函数里
case 'y':*p=&y;break;
case 'z':*p=&z;break;
}
}
复制代码
作者:
剑气近
时间:
2014-6-20 01:19
huangqiwa 发表于 2014-6-19 00:13
实在是太谢谢你了,分析的很透彻 ,让我很容易看明白,谢谢啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2