首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有关问题

2012-03-06 
问题main(){charb[] hello,you b[5]0printf( %s\n ,b)}程序运行的结果是hello,为什么?[解决办法]

问题
main()
{
        char   b[]= "hello,you ";
        b[5]=0;
        printf( "%s\n ",b);
}
程序运行的结果是hello,为什么?

[解决办法]
强制转换不等于把int型的0转换成其对应的ASCII码值,如果要是这样想的话那double转换成char该怎么个转法?
其实称其为强制或许都有些勉强,“隐式转换”这样说应该更具代表性一些

C++中数据类型的内存占用大小不一,例如int是4字节而char由各编译器决定,这就造成了要把一种尺寸(即内存占用大小)的数据存入另一种尺寸的数据空间的操作必须要进行尺寸重载(引用汇编中的说法),int型的0转成char型依旧是数值上的0,不会变成 '0 '的ASCII码值即30h,区别在于, 数值占用的内存空间从4字节变成了其他大小(存储器尺寸被重载了)

热点排行