C语言 字符指针与字符数组的比较
提问人:刘团圆发布时间:2020-12-01
虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。
(1)存储内容不同。
字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存放一个字符)。
(2)赋值方式不同。
对于字符指针变量,可采用下面的赋值语句赋值:
char *pointer;
pointer="I love c.";
而字符数组,既可以在定义时初始化,也可以对字符数组中的单个元素赋值,如:
char str[20];
str[0]="I";
但不能用赋值语句对一个字符数组整体赋值。如下面的用法是错误的:
char str[20];
str="I" love c.";
(3)指针变量的值是可以改变的,字符指针变量也不例外。字符指针既可以指向任意字符串,也可以指向字符串中任意字符;而数组名代表数组的起始地址,是一个常量,常量是不能被改变的。
例如:
char s[80]s="Hello";
char *p=s; /*指针p指向宇符串首地址*/
p-s+3; /*指针p指向字符串中第3个字符开始的字符串*/
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>