C语言字符指针和字符数组的区别

 我来答
繁楚余甲
2020-01-25 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:28%
帮助的人:656万
展开全部
推荐回答里面是有问题的,对于指向字符的指针来讲,其指向内容是否可变,要看他指向的内容,指向字符的指针可以指向两种字符串:1.字符串常量,如char
*q="abcd",这里q指向的内容是不可变的,即q[1]='a'是不合法的;2.字符串变量,如char
p[10],然后给p赋值,然后char
*q=p,这里的q指向的内容是可以变的
需要注意的是,这里是q指向的内容是否可变,而不是q指向的内存是否可变也就是说1中的q可以有q=p(p也是一个字符指针)这样的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昝蝶栾歌
2020-04-13 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1168万
展开全部
两个用法差不多,唯一的区别在于字符数组的值在程序运行过程中是可以修改的,但是字符指针的值在运行过程中是不能修改的。
#include
using namespace std;
int main()
{
char *a = "abcd";
char b[10] = "abcd";
//a[2] = 't'; //运行会报错
b[2] = 't'; //正常
//cout << b << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
士枫终灵凡
2020-05-08 · TA获得超过3897个赞
知道大有可为答主
回答量:3041
采纳率:25%
帮助的人:181万
展开全部
字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在
以该首地址为首的一块连续的内存空间中并以‘\0’
作为串的结束。字符数组是由于若干个数
组元素组成的,它可用来存放整个字符串
char
*p
=“C
language”;
char
p[]={"C
language"};
可以理解为:字符指针是字符数组的退化
但是实际使用中,字符串指针却比字符数组更好用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
隆耕顺须倩
2020-01-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:1008万
展开全部
字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。
对指向字符变量的指针变量应赋予该字符变量的地址。如:
char
c,*p=&c;表示p是一个指向字符变量c的指针变量。而:
char
*s="C
Language";则表示s是一个指向字符串的指针变量。把字符串的首地址赋予s。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式