怎样正确使用字符数组

 我来答
a65071627
推荐于2017-12-15
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
C语言没有专门定义字符串数据类型(如其他语言中的string),它用以'\0'结尾的字符数组来表示一个逻辑意义上的字符串。

字符数组主要有两种用途,(1)存储字符串,(2)存储字符或字符变量。这两个是不同的,刚开始接触时很容易混淆。下面进一步分析这两者的不同。

首先初始化时不同,用于存储字符串,例如:char str[]="Hello"; 用于存储字符或字符变量,例如:char Chars[]={‘H‘‘e‘,‘1‘‘1‘,‘o‘}。这两者的存储方式是一样的,但是存储内容稍微有所不同,那就是第一种情况会在结尾加上‘\0’,存储情况类似于{‘H‘‘e‘,‘1‘‘1‘,‘o‘,‘\0‘},存储空间会比第二种情况大一点,但是这个存在空间并不被计算进字符串(其实只是字符数组)变量中。

C语言中提供的字符串操作函数其实是针对于结尾是‘\0‘的字符数组进行的。输出函数printf中的输出参数%s也是针对于结尾是‘\0‘的字符数组。

另外,还有一种方法可以定义字符串(其实也是字符数组),申明如下:
char * string = "this is a point charArray.";字符指针指向字符数据的第一个字符的位置。

最后,有两点特别说明。
(1)字符串常量给出的是地址值。如
char *p, s[10];
p="hello";//正确
(2)不能用赋值语句给字符数组整体赋一串字符,例:
char str[10];
str = "abc"; //错误
正解的赋值办法是给数组元素逐个赋字符值,最后人为加'\0'。

参考资料: http://hi.baidu.com/ayongs/blog/item/97783bd38d60cb033bf3cf77.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式