C语言,字符常量与字符串常量有什么区别,求详解

如题所述

首先,它们都是常量,所以不可以被改值。
字符常量永远是一个个体,也就是它只是一个字符而已。
而字符串常量是一个群体,就像人们说的一句话,字符串常量中是由若干个字符常量构成的,当然可以没有,不过系统会给其加一个‘\0’,至于为什么要加,找D.M.Ritchie。
就像人们说的话一样,字符常量是单词,而每一句话的后面都要加上句号,表示这句话说完了,这个大概是‘\0’拟人的一个作用吧,我这么认为。
另外字符常量其实对于计算机来说是一个二进制数,也就是它是一个数值,所以你可以对一个字符常量来进行逻辑运算,比如‘b’ - ‘a’ = 1。
字符串常量是话语,作为条件的判断以及显示器输出的对象。
祝你好运~追问

字符串常量用在数组上是不是拆成单个字符用

追答

是的,既然是字符构成的,每一个字符占一个单元,当然可以看做一个数组结构的形式。其实内存来说,它是顺序地址的,所以你在存储数据的时候,有多大就占用多大的单元,只不过数组是认为的看待的一种形式,这样逻辑上来说比较好分析,其实内存没有变。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-18
字符常量用单引号括起来,'A','a'等,表示单个字符

字符串常量用双引号括起来,"abcd","ABCD"等,表示由若干字符和最后一个结束字符'\0'组成的字符串。譬如"ABCD",除了'A','B','C','D'这四个字符外,最后还有一个'\0'结束字符。实际占5个字符位置。追问

字符常量每个字符都有对应的十进制数,比如'a'=97.那字符串“abcd”代表什么

追答

字符串可以看成是字符数组

譬如"abcd",可以看成是一个数组char s[5],
s[0]是'a',s[1]是'b',s[2]是'c',s[3]是’d',s[4]是'\0'

追问

就是拆成单个字符吗,另外字符串一般怎么用

追答

这个说来话长了,建议你还是先多看书,把基础先学一学。

追问

你把我问的问题讲明白就好了

追答

数组怎么用,这个没法跟你讲啊,我估计你现在连数组是什么都还没弄明白呢,这些都要自己去学,别人很难几句话讲清楚的。

追问

我懂数组,我只是问你字符串用在数组上是不是拆成单个字符

追答

我前面说过了,字符串可以看成是字符数组,既然是字符数组,就表示这个数组的元素就是字符。你操作字符数组的元素就是操作这些字符啊。
给你举个例子
char s[100];
gets(s); //读取字符串,譬如"ab"
printf("%s",s); //输出字符串,就是输出ab
printf("%c%c",s[0],s[1]); //输出数组元素,第一个就是a,第二个就是b
printf("%d",s[2]); //输出ab后面的结束字符的ascii码值,就是0

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网