我有以下Set
代码,但我不理解
C
我创建了一个#include <stdio.h>
int main(void)
{
char c = '\\\\';
printf("%c\n", c);
}
,其中包含两个字符。我收到一个编译器警告,说明从char
截断到int
。 char
\\\\
怎么样?这不是一个字符串吗?
当我遇到这个问题时,我正在研究可接受的字符文字的语法。
这些是我在网上找到的转义序列:
int
答案 0 :(得分:3)
在C中,所有非宽字符常量都是类型int
。以下示例。
'a', '\\', '\x0012', '\n', '\\\\', '\0', 'ab'
printf("%x %x %x %x %x %x %x\n", 'a', '\\', '\x0012', '\n', '\\\\', '\0', 'ab');
// Output - this may differ - but used for illustration
61 5c 12 a 5c5c 0 6162
消息“警告:隐式常量转换中的溢出[-Woverflow]”等警告编码人员认为int
常量'\\\\'
的值超出范围{ {1}}并且值得审核。
char