首页 新闻 搜索 专区 学院

指向指针数据的指针。。。

0
悬赏园豆:5 [已关闭问题] 关闭于 2013-05-13 00:37

#include <stdio.h>

int main()
{
char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
char **p;
int i;
char ch;
for (i=0;i<5;i++)
{
p=name+i;
printf("*p=%c\n",*p);//此处*p=name[i]字符串第一个字符的地址,输出最后两位数字的ascii码值
printf("*p=%s\n",*p);//此处*p=name[i]字符串第一个字符的地址,输出第i个字符串
printf("**p=%c\n",**p);//此处*p=name[i]字符串第一个字符,输出字符(**p)
printf("ch=%c\n",ch=**p);//此行是为了证明上面的结论的,输出同上
printf("%d\n",**p);//此处*p=name[i]字符串第一个字符的整形数字(ascii),输出F=70;B=66;G=71;F=70;C=67
printf("p=%d\n",p);//name[i]字符串第一个字符的地址 (不同计器输出不同,但相邻值差4)
printf("p=%s\n",p);//这个直到现在我都还没揣摩出来(。。。。望知道者补充之。。)
printf("\n");
}
return 0;
}

trycatchfinally的主页 trycatchfinally | 初学一级 | 园豆:199
提问于:2013-05-10 22:37
< >
分享
所有回答(2)
1

printf("p=%s\n",p);//这个直到现在我都还没揣摩出来(。。。。望知道者补充之。。)

上一句printf("p=%d\n",p)输出的是第一个字符串的地址,而你将地址直接按字符串的格式数出来自然就会出来不可预料的结果

将上句话改为printf("p=%s\n",*p);

即可得到第一个字符串。

许鸿飞 | 园豆:168 (初学一级) | 2013-05-11 09:56

就选你了

支持(0) 反对(0) trycatchfinally | 园豆:199 (初学一级) | 2013-05-11 23:41
0

指针的指针不就是引用吗

56180825 | 园豆:1365 (小虾三级) | 2013-05-11 11:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册