位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

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)
返回顶部