社区
C语言
帖子详情
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
My_Love
2012-07-25 09:06:56
a == 0x56? or 未知?
...全文
327
7
打赏
收藏
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
a == 0x56? or 未知?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
My_Love
2012-07-25
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
就是溢出,但结果必然0x56这跟大小端没关系
[/Quote]
有法定依据没?
赵4老师
2012-07-25
打赏
举报
回复
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不要写连自己也预测不了结果的代码!
Corner
2012-07-25
打赏
举报
回复
常量值截断~留下0x56,相当于类型转换。
int a = 0x123456;
char b = (char)a;
nice_cxf
2012-07-25
打赏
举报
回复
就是溢出,但结果必然0x56这跟大小端没关系
图灵狗
2012-07-25
打赏
举报
回复
未知,CPU有大小端的差异,根据不同的字节存储顺序会有不同。
nice_cxf
2012-07-25
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
显然没有依据。
引用 5 楼 的回复:
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
这个还用找什么依据?有大端的系统自己测试以下不就知道了?
数据溢出截断而已,和cpu编译器有什么关系?如果是short必然0x3456
图灵狗
2012-07-25
打赏
举报
回复
显然没有依据。
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
[转]
char
*p="1234567890"以及C/
C++
的内存
char
*p="1234567890",这样的定义有问题吗? 2008-08-25 19:47 348人阅读 评论(1) 收藏 举报 这个"1234567890"字符串不再堆上也不在栈上!而是在文字常量区,而指针p在栈上。文字常量区:常量字符串就是放在这里的.程序结束后由系统释放。 比如: inta=0;全局初始化区
char
*p1;全局未初始化区 mai...
深入分析
C++
中
char
* str和
char
str[]的区别
前段时间去阿里云实习生笔试,考了一道要求用递归实现字符串反转的问题:输入
char
* str="abcedf",打印输出"fedcba"。 我在VS2008平台上编写例程如下: View Code 1 #include "stdafx.h" 2 #include string.h> 3 4
char
* reverse(
char
* str) 5 { 6 int le
char
*s 和
char
s[] 的区别
char
*s 和
char
s[] 的区别简析
char
*和
char
[]的区别
转自:https://blog.csdn.net/yahohi/article/details/7427724 以下内容均来自互联网,系笔者汇总并总结。 1. 问题介绍 问题引入: 在实习过程中发现了一个以前一直默认的错误,同样
char
*c = "abc"和
char
c[]="abc",前者改变其内 容程序是会崩溃的,而后者完全正确。 ...
char
*p="1234567890",这样的定义有问题吗?
这个"1234567890"字符串不再堆上也不在栈上!而是在文字常量区.而指针p在栈上 文字常量区:常量字符串就是放在这里的.程序结束后由系统释放. 比如: int a = 0; 全局初始化区
char
*p1; 全局未初始化区 main() { int b; 栈
char
s[] = "abc"; 栈
char
*p2; 栈
char
*p3 = "123456"; 1234
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章