我用VS2013运行这个代码,老打印 T,将a初始化为"X",X代表其他字符,还是打印 T,这是怎么回事?
8条回答 默认 最新
- 浪前青山 2015-04-15 02:20关注
char a = "C",这里“C”不是字符常量,它表示的是两个字符(字符C和\0)组成的字符串,“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,希望对你有所帮助。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用