一只老菜鸟关于C语言指针与字符串的问题

为什么char*p="computer"与char*p;*p="computer"不等价而与char*P;p="computer"等价... 为什么 char *p="computer"
与char *p;
*p="computer"不等价
而与 char *P;
p="computer"等价
展开
 我来答
shine1991
科技发烧友

2011-06-14 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.4亿
展开全部
这个, char *p="computer";,是初始化
char *P;p="computer";是赋初值,两者结果一致,都是让指针变量p指向字符串常量"computer"的地址
但是 *p="computer",就不一样了啊,右边的值是一个字符串常量的地址,左边是指针p指向的内容,由于之前已经定义了p是指向一个字符型的指针(char *p;),于是*p="computer",不就是"把一个字符串常量的地址赋给一个字符型变量"了么,那当然是错的
copylegend
2011-06-14 · TA获得超过346个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:219万
展开全部
char *p,说明p是个字符指针,
而*p则是取这个指针指向的第一个字符的内容。
当然不等价。

char *p = "computer",则*p = 'c';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiese19900126
2011-06-14
知道答主
回答量:7
采纳率:0%
帮助的人:4.2万
展开全部
char *p="computer";//这是在给p初始化,而不是*p;
printf("%s",p);

而*p=“Computer”;//是给p所指的内存赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轩辕唯敏
2011-06-15 · TA获得超过231个赞
知道答主
回答量:81
采纳率:50%
帮助的人:38.8万
展开全部
这是“指针变量处理字符串”的问题
将指针指向字符串有两种方法:
1.初始化
char *p="computer";(在定义指针时将字符串地址付给p)
2.对指针变量进行赋值
char *P;
p="computer";(将字符串的地址赋给了p)
而char *p;
*p="computer"(因为有引用运算符*的存在,即表示对p所指向的变量的储存单元进行操作,将computer赋给p所指向的变量)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式