C字符串和字符数组的区别

字符串###

  • C规定了一个"字符串结束标志",以字符 '/0' 代表。如果有一个字符串,其中第10个字符为'/0',则此字符串的有效字符为9个。也就是说,在遇到字符'/0'时,表示字符串结束,由它前面的字符组成字符串。
  • 系统对字符串常量也自动加一个'/0'作为结束符。
  • 可以用字符串常量来初始化字符数组。
    如: char c[]={"I am happy"}; 也可直接写成: char c[]="I am happy"; 注意此时数组的长度不是10,而是11,因为系统自动加上了'/0'结束符

字符数组###

  • 字符数组不要求最后一个字符为'/0',而为了使处理字符数组和字符串的方法一致,便于测定字符串的实际长度,能及方便在程序中处理, 在字符数组末尾也常加上一个'/0'。
  • 如果一个字符数组中包含一个以上'/0',则遇第一个'/0'时输出就结束

二者区别###

字符数组是一个数组,每个元素的值都可以改变。而字符串指针指向的是一个常量字符串,它被存放在程序的静态数据区,一旦定义就不能改变。这是最重要的区别

对字符串指针方式:

char *ps="C Language";

可以写为:

char *ps;
ps="C Language";

而对数组方式:

char st[]={"C Language"};

不能写为:

char st[20];
st={"C Language"};

只能对字符数组的各元素逐个赋值。

参考文章###

C/C++——字符串和字符数组
http://blog.csdn.net/shinehoo/article/details/5823756
C语言字符串指针与字符数组的区别
http://c.biancheng.net/cpp/html/81.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,473评论 3 44
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,007评论 2 13
  • 本文转自:http://www.cnblogs.com/lidabo/p/5225868.html 1)字符串操作...
    XiaohuiLI阅读 9,555评论 0 0
  • 一、字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 s...
    JaiUnChat阅读 1,675评论 0 7
  • 从一年级开始,就发现有个别孩子已经对异性的身体好奇了。利用今天的班会课,我们班开展了关于《防性侵安全教育》的主题班...
    哎哟不错哟_5594阅读 254评论 0 0