问题描述
- char a = "C";printf("%c",a);打印问题
-
我用VS2013运行这个代码,老打印 T,将a初始化为"X",X代表其他字符,还是打印 T,这是怎么回事?
解决方案
char a = "C",这里“C”不是字符常量,它表示的是两个字符(字符C和)组成的字符串,“C”实际上表示的是字符串所在的内存地址,上面那条语句试图将一个内存地址赋给a,内存地址占4个字节,而char类型只占一个字节,你试着将“C”的地址给打印出来,再结合大小端模式,估计就能够得出答案了。但是char a = "C"这种做法是不推荐的额,程序根本运行不了,提示有错误,类型不一样,error: invalid conversion from const char*' to
char'。
#include
int main()
{
char *a ="C";
printf("%p",a);
return 0;
}
我运行的结果是00403000,希望对你有所帮助。
解决方案二:
char a = 'C';因该是单引号吧!!!
解决方案三:
要用单引号,双引号表示的是字符串……
解决方案四:
#include <stdio.h>
int main()
{
char a = 'C';
printf("%c",a);
}
输出C
参考:http://codepad.org/lhlYvuuT
是引号的问题
解决方案五:
char使用单引号的。字符串就是很用双引号。
解决方案六:
char a='C';只能用单引号吧!
解决方案七:
char型字符只能用单引号,使用双引号就成了字符串了,这个一定要分清。
解决方案八:
char a = "C",这里“C”不是字符常量,它表示的是两个字符(字符C和)组成的字符串,“C”实际上表示的是字符串所在的内存地址,上面那条语句试图将一个内存地址赋给a,内存地址占4个字节,而char类型只占一个字节,你试着将“C”的地址给打印出来,再结合大小端模式,估计就能够得出答案了。
时间: 2025-01-21 07:07:37