变量类型不同的本质是什么?

phwan 2004-11-16 06:40:06
char,int,double......,struct
很多类型到机器上识别时,机器以怎样的一个单位长度进行判断,一个机器码的长度吗?
32位机上,int是4字节,64位机int是8字节。
不够一个int长度的,补充吗?
如果类型不符,还会有类型转换的说法,不知道该怎么问好,概念很糊涂,请大家解惑
...全文
184 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
uglystone 2004-11-16
  • 打赏
  • 举报
回复
变量类型不同的本质
定义在上数据操作不同,
例如:int和float中的除法运算就不同
zhangfjj 2004-11-16
  • 打赏
  • 举报
回复
数据类型主要有这几方面:
1。值域,即表示值的范围
2。存储格式,即其物理存储格式
3。定义在以上2者的操作
数据结构书上说得很清楚了
Kusk 2004-11-16
  • 打赏
  • 举报
回复
那些标示是由编译器识别的,机器无所谓识别或是不识别。不同的类型有不同的操作,比如int的加法与double型的加法编译成机器码时,指令是不一样的。编译器根据不同的类型声明来选择不同的指令生成机器码,执行时只要按照这些指令执行,对应回来就相当于按不同的类型来操作。但这些机器自己是不知道的。

所有的字长在同一台机器上都是确定的,数字无论大小,一律都占用相应大小的空间。一般汇编语言前面几章介绍理论的部分都可以找到你这些问题的回答。你可以找来翻一翻。
Andy84920 2004-11-16
  • 打赏
  • 举报
回复
一个机器码的长度看你是32位还是64位还是16位了.
一般一个int类型的长度就是一个word(字)的长度.在32位机子就是4字节.
不够一个int的可能会补充.如
struct test{
char a;
};
但也不是一定的.不同的环境就不一样.
我觉得还是不要问的好,先看书,不懂的先放着.
小崔爱读书 2004-11-16
  • 打赏
  • 举报
回复
对于计算机65和字符A没有任何区别。所处的指定内存区域储存一个二进制表示的65数字。c运行时从内存中取出这个数,然后根据类型来判断这个数的值。

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧