c语言字符型和字符串型的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言字符型和字符串型的区别?相关的知识,希望对你有一定的参考价值。

我是初学者,书上有这么一段:“不要将字符常量与单字符的字符串常量混淆。例如:
char c;
c='a';是正确的,而
c="a"是错误的;
c="abcd"也是错误的。
为什么最后一个错误啊?声明字符串常量是不是不能用"char"啊?应该用什么?
请问,打印字符型的时候,printf("%c/n,"c1),如果是打印字符串型,那个%c应该改成什么呢???
(另外请帮我看看这个问题,http://zhidao.baidu.com/question/23077695.html回答好了追加10分)

我只回答一下你提出的问题吧.其他不懂的你可以再跟我联系.
char c; 声明字符变量c,系统为c分配一个字符的空间
c="abcd"; //这是是错误的. abcd要占4的字符的空间,c中放不下.
声明字符串常量也能用"char".要用到数组.(如果你没学到数组,等你学了以后就明白了)例:
char string[4];
string="abcd";
string中存放的就是字符串"abcd"了.
打印字符型的时候,printf("%c/n,"c1),如果是打印字符串型,只需把%c改为%s即可.例:
printf("%s",string); //打印字符串string(abcd)
参考技术A 字符型是单个字符
字符串是由字符型的单个字符所组成的集合。
字符串在c语言中表示为字符型数组哈。c语言中并没用字符串这种数据类型。
你用的编译器是c++的,所以就有了字符串这样的类型哈。
字符型在c中规定死了是一个字节。
而字符串是多个字节的。
参考技术B 单引号表示字符,双引号表示字符串。
char是字符型的,占一个字节内存,每个字母占一个内存。所以c='a'是对的
而c="abcd"占4个字节内存所以肯定是不对的。ar
______
c中的字符串要用数组或指针定义,比如:char a[5]="abcde";
或char *a;*a="abcde";
参考技术C 第二个错是因为用了双引号,字符型是用单引号的. 字符串是是用双引号的.
而最后一个错是,abcd明显是一串字符串,所以不能用char c;来说明,如果要说明,可以使用数组形式定义:a[4]="abcd"
参考技术D char c;
c='a';
c="a" ;
c="abcd";
因为你在上面定义了c为字符形式,而字符形式就占一个字节,所以c='a';是对的,但c="a" ;则是错的了.因为字符型是用单引号的. 字符串是是用双引号的.
而字符串储存的时候,系统会自动在在字符串的后面增加一个结束号'\0',而这个号是系统自动增加的,每个字符串都会有的,而这个结束符占了一个字节,而字符类型的C只有一个字节,所以是错误的.c="abcd";而只一个更不用说了,差了4个字节,当然不行了.

c语言字符串和字符串数组的区别

参考技术A 字符串是字母的数组,多个字母存在字符数组里变成字符串,
字符串数组可以存多个字符串,
可以理解成字符串是字符的一维数组,字符串是字符的二维数组的

以上是关于c语言字符型和字符串型的区别?的主要内容,如果未能解决你的问题,请参考以下文章

OC和C的区别?

c语言中的getch与getchar 有啥区别?

字符与字符串的区别

c语言 关于字符数组和整型数组清零

在C语言中getchar()如何用

C或C++中如何把一个double型的数转换成字符串?