真心C语言 发表于 2013-12-10 11:43:20

指针问题

有一下定义
         char a,*p;
         p="China";
prinntf("%s",a);

我的疑问:指针变量 p 与数组 a 不是共用地址吗?既然给p赋值为“China”数组 a 的值也应该是“China”啊 那输出结果应该是China{到底哪里不对啊}{:5_90:}

amydog 发表于 2013-12-10 13:00:53

我的疑问:指针变量 p 与数组 a 不是共用地址吗?   这个问题我不知道


我仅以我刚学到的知做个说明:

P 里存放的是 ‘china’的地址而不是'china'

*p   存放的才是'china'

所以你在打印的时候应该写&a    这样才是类型一样

zhanshen158 发表于 2013-12-10 13:39:42

a是一个指针常量,它等于&a,p是一个指针变量,你把字符串"China"中的字符'C'的地址赋给了p,你的程序中a和p没有一丝的关系
应该改为:
char a="China",* p;
p=a;
printf("%s\n",p);
就会得到你想要的结果

真心C语言 发表于 2013-12-11 17:53:39

zhanshen158 发表于 2013-12-10 13:39 static/image/common/back.gif
a是一个指针常量,它等于&a,p是一个指针变量,你把字符串"China"中的字符'C'的地址赋给了p,你的程序中a ...

有一下定义
         char a,*p;
         p=a;
         p="China";
prinntf("%s",a);

很尴尬啊 少些了一行代码,请指教

bestainan 发表于 2013-12-12 17:18:20

真心C语言 发表于 2013-12-12 17:46:23

#include<stdio.h>
woid main()
{
printf("谢谢");
}
页: [1]
查看完整版本: 指针问题