C语言字符与字符串的差别有哪些?

一、问题

        'a'与"a"有什么不同?

二、解答

        'a'为字符常量,"a"为字符串常量。

字符常量与字符串常量的差别:

(1)定界符的使⽤不同

         字符常量使⽤的是单引号,⽽字符串常量使⽤的是双引号;"a" 是字符常量,⽽"a"是字符串常量。

上述赋值是正确的,但是下⾯的赋值都是错误的
char b;
b="a";
或者
b="Hello";
注意:
    编写C语⾔程序的时候,千万不要把⼀个字符串常量赋值给⼀个字符变量,否则会造成字符丢失。

 (2)长度不同

        字符常量只能有⼀个字符,也就是说,字符常量的长度为1。⽽字符串常量的长度却可以是0,即使字符串常量中的字符数量也只有1个,但是长度却不是1。字符串常量"a",其长度为2。

为什么字符串常量“a”的长度为2?

    这是因为系统会⾃动在字符串常量尾部加上⼀个转义字符'\0',作为结束标志,故"a" 的长度是2,
⽽'a' 的长度是1。

(3)存储的⽅式不同

        在字符常量中存储的是字符的 ASCII 码值,⽽在字符串常量中,不仅要存储有效的字符,还要存储结尾处的结束标志 '\0'。

三、总结

字符与字符串的本质区别:

        字符常量是单个字符,⽽字符串可以是单个字符,也可以是多个字符。

    需要注意的是,不要将单引号和双引号弄混了,因为⽤单引号括起来的⼀个字符代表⼀个整数,⽽⽤双
引号括起来的⼀个字符代表⼀个指针。若将两者混⽤,将产⽣难以预料的错误。

你可能感兴趣的:(C语言,c语言)