我用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无用
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘