2013-08-01 57 views
0

我想比较C++中的两种字符类型。我试图cout<<"x"=="x";看到的结果,它不会工作(我相信是正常的),所以我试图通过尝试int letter = "x"转换它试图比较它的ASCII码。这让我错误;如何在初始化过程中将char转换为int

错误:从 '为const char *' 到 '炭'

不应该在该工作无效的转换?如果不是,我该怎么做?

+0

**注意**:**'“5”**是一个**字符串**,''5''是**'cha'r **,**'5' **是一个**'int' **。都是不同的。 –

+0

尝试:'cout <<'x'=='x';'它会工作。 –

回答

5

"x"给你一个nul结尾的字符数组{'x','\0'}

如果你想有一个单一的char

1

使用'x'您使用在你的字符双引号。

双引号是类型为const char *,而不是类型char

尝试

int letter = 'x'; 
2
  • "x"是字符数组 - 串 - (2个字节 - 一个用于炭x,一个用于char \0 nul)
  • 'x'是char - 变量,由内存中的1个字节表示。

"x"分配给int变量是一个明显的错误。

尝试'x'而不是"x"int letter = 'x';应该可以正常工作。