生肖蛇女最怕出生几月:一个C语言常识问题?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 20:48:18
#include "stdio.h"
main()
{
char a;
a='';
putchar(a);
}

编译可以成功,但不是说两个双引号表示一个字符常量的时候,
是不可取的吗?那为什么在编译器,我这样写的时候,并没有报错.
真是不能够理解啊.
说错了,是单引号如''表示一个空格符时候是错误的方式.应该也成' '单引号中间空了一格
我用的是tc 2.0 还有win-tc都没有报错啊.本来两个单引号连写在一起是错误的.但是这两个编译器都没有报错啊.
不知为什么.

我这里编译就不成功, 报错, "empty character constant", 空字符常量

你的是什么编译器啊? 我的是用的是dev-cpp, windows下模拟的gcc

你这个是两个单引号啊
两个双引号表示的是一个字符串

比如 char str[] = "a"; 虽然表面上是存了一个字符'a', 但实际上是存了两个字符'a'和'\0', 后面的那个是字符串的最后一个字符, 表示字符串的结束, 是系统自动给你存的。

我想你所说的应该是这个。

TC 在很多地方跟现在新的编译器不同,你可以在TC上试如下两句:
char a='';
printf("%ca\naa",a);
执行的结果是:
a
aa
也就是说编译器把空当成了空格. 而显然空字符不是空格,
如果你习惯用TC的话,建议最好准备两个编译器,随时对比一下不同编译器的反应,就知道哪些是TC的方言了.

" ''