
一只老菜鸟关于C语言指针与字符串的问题
为什么char*p="computer"与char*p;*p="computer"不等价而与char*P;p="computer"等价...
为什么 char *p="computer"
与char *p;
*p="computer"不等价
而与 char *P;
p="computer"等价 展开
与char *p;
*p="computer"不等价
而与 char *P;
p="computer"等价 展开
4个回答
展开全部
这个, char *p="computer";,是初始化
char *P;p="computer";是赋初值,两者结果一致,都是让指针变量p指向字符串常量"computer"的地址
但是 *p="computer",就不一样了啊,右边的值是一个字符串常量的地址,左边是指针p指向的内容,由于之前已经定义了p是指向一个字符型的指针(char *p;),于是*p="computer",不就是"把一个字符串常量的地址赋给一个字符型变量"了么,那当然是错的
char *P;p="computer";是赋初值,两者结果一致,都是让指针变量p指向字符串常量"computer"的地址
但是 *p="computer",就不一样了啊,右边的值是一个字符串常量的地址,左边是指针p指向的内容,由于之前已经定义了p是指向一个字符型的指针(char *p;),于是*p="computer",不就是"把一个字符串常量的地址赋给一个字符型变量"了么,那当然是错的
展开全部
char *p,说明p是个字符指针,
而*p则是取这个指针指向的第一个字符的内容。
当然不等价。
char *p = "computer",则*p = 'c';
而*p则是取这个指针指向的第一个字符的内容。
当然不等价。
char *p = "computer",则*p = 'c';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *p="computer";//这是在给p初始化,而不是*p;
printf("%s",p);
而*p=“Computer”;//是给p所指的内存赋值
printf("%s",p);
而*p=“Computer”;//是给p所指的内存赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是“指针变量处理字符串”的问题
将指针指向字符串有两种方法:
1.初始化
char *p="computer";(在定义指针时将字符串地址付给p)
2.对指针变量进行赋值
char *P;
p="computer";(将字符串的地址赋给了p)
而char *p;
*p="computer"(因为有引用运算符*的存在,即表示对p所指向的变量的储存单元进行操作,将computer赋给p所指向的变量)
将指针指向字符串有两种方法:
1.初始化
char *p="computer";(在定义指针时将字符串地址付给p)
2.对指针变量进行赋值
char *P;
p="computer";(将字符串的地址赋给了p)
而char *p;
*p="computer"(因为有引用运算符*的存在,即表示对p所指向的变量的储存单元进行操作,将computer赋给p所指向的变量)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询