永发信息网

C语言,C++中,char i = '问';这里是否存在强制转换?*****

答案:6  悬赏:30  手机版
解决时间 2021-01-01 18:31
中文占2字节,但是为何能用1字节的char来接受?应该要报错才对,(当然最后运行会出现乱码)

我问的是为什么不会报错,不是问为什么会出现乱码
最佳答案
存在。

Visual C++ 2013:
warning C4305:“初始化”: 从“int”到“char”截断

GCC 4.8.1:
[Warning] multi-character character constant [-Wmultichar]

这里没有必要报错,只是一个丢失精度的转换而已。

C++的字符不仅与字符类型的“容量”有关,还与文本编辑器、编译器使用的字符、输出系统使用的字符集有关。

目前C++提供了支持UTF8 UTF16 UTF32编码的字符类型: char、wchar_t、char16_t、char32_t

但是实际的字符输入输出还是依赖具体环境。

字符处理还是依靠第三方库来完成。
全部回答
有啊。int a=100; char b =(char) a; 就是把 4 字节长的整型 转成 1 字节 长 的 char 型。 char b = 'd'; // ascii 码值 100 int a = (int) b; // 数值 100 就是把 1 字节长的char 转成 4 字节 长 的 int 型。 char 本身就是 1字节长 的整型。 只要数值范围 不超界,可以强制转换。
这种他在编译的时候它不会检查的,就像它不会检查&a中的&一样,它默认你写的是不会溢出
对呀!char i = 'abc'也不同样不报错吗?中文是由两个字节存储的,和'abc'一样,只读取后面的那一个字节。
我明天再问问老师,叫他解释下这个问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么我的ipad应用只用了7g却16g全没了?
南漳县工商行政管理局市场巡查指挥中心位置在
肉烧糊了怎么去糊味
一个多位数是由4个千万、9个万、5个千和3个百
如何在普通PC机上安装苹果系统?- -
南漳县工商行政管理局城区分局胡营巡查队办公
母鸽子总不下蛋是怎么 5分
据新华社报道,我国目前正利用一艘原名为“瓦
求未知数x.x+36=98??????x-45=63???4.5+x=27
放大镜、照相机是人们生活中经常使用的光学器
楼主好,我16年硕士毕业,8月注册了执业证,
项城市周口慧盈手工水饺这个地址怎么能查询到
养牛和养猪哪种效益高
单选题下列选项中,属于地质构造的是A.地壳的
性格内向闷骚的男生喜欢什么样的女孩?怎么看
推荐资讯
嫁豪门的星盘
填空题按要求写出下列名称或符号。(1)2个氧分
为什么男人这一生要拥有一台宝马
应用统计硕士学费五万不提供住宿,为什么?求培
QQ仙侠传门派坐骑分别是加什么属性?
走组词"走你"正确吗?
金湖到太仓怎么走
请问从中国寄信到美国圣母大学的格式和地址正
爱普生打印机 L365清零
孩子涂鸦用白板贴好还是用黑板贴好
凉拌龙口粉丝怎么做
米兰花叶子发卷怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?