社区
C++ 语言
帖子详情
int i ; long(i)与(long)i的区别
luda123
2005-08-11 10:08:51
int i ;
long(i)与(long)i的区别
...全文
410
13
打赏
收藏
int i ; long(i)与(long)i的区别
int i ; long(i)与(long)i的区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luda123
2005-08-12
打赏
举报
回复
它们的作用是,对i的那片内存空间重新解释,把他解释成long类型;
------------------------------
是不是以后如果没有类型转换,就按long类型解释
herman~~
2005-08-12
打赏
举报
回复
学习
liao2001
2005-08-12
打赏
举报
回复
我来把楼主搞糊涂一下先:
1.从c规则的角度来说,long(i)是错误的,(long)i是正确的.
2.从c++规则的角度来说,2者都是对的,且结果一样,long(i)可以简单的理解为强制转化,(long)i就是强制类型转化.
3.从c++编译器的角度来说,估计2者极可能完全一样的解释规则
4.从面向对象的角度来说,i其实就是一个对象,long(i)是调用long::long(int i)构造一个long对象,而(long)i,还是强制类型转化,二者是不一样的(结果还是一样-_-#).
5.由3推断,他们的机器指令一样,都是间接利用了寄存器来传值,不存在临时变量.(我个人不把寄存器看作临时变量)
6.由4推断,他们的机器指令有可能不一样,long(i)会有临时变量产生,然后再利用寄存器传值,而(long)i似乎就象厕所里的石头.
作为一个想深入面向对象,而又没有机会的人,我对楼主的建议是,不管对错,尽量用4来分析问题,将对象植入大脑或许会很有意义
lgq2369
2005-08-12
打赏
举报
回复
应该是每个强制类型转化都生成一个转换后的类型的临时变量拷贝。
而原变量在任何时候都是原来的类型不变。
lgq2369
2005-08-12
打赏
举报
回复
强制类型转换都是在编译期间自动完成的,而不是在运行期(除了dynamic_cast)。
具体怎么实现应该看各编译器,无需程序员介入。
snowbirdfly
2005-08-11
打赏
举报
回复
我支持上面的说法,
应该两者是一样的~
都是强制类型转换。
visual4825
2005-08-11
打赏
举报
回复
T(i) 也称函数记法,
对于built-in类型,T(i)和(T)i是等价的
第一种情况主要用于:1.user-defined type的对象构造 2.整数到枚举的转换 3.算术转换
Dong
2005-08-11
打赏
举报
回复
long(i)是产生一个long类型的临时变量,还是改变i 的类型(即扩展 i的存储空间至long类型的大小
------------------------------------
应该说这两者都产生临时变量!!其实“扩展”是临时变量的产生,他不是直接把i地址做为long(i)或者(long)i的低位存在的!
lyclowlevel
2005-08-11
打赏
举报
回复
To:long(i)是产生一个long类型的临时变量,还是改变i 的类型(即扩展 i的存储空间至long类型的大小
ANSWER:没有改变大小,也没有产生临时变量;两者都是强制类型转换,它们的作用是,对i的那片内存空间重新解释,把他解释成long类型;
还有,这两种办法都是旧的类型转换,在c++中的类型转换是:
static_cast<long>(i),reterpret_cast<long>(i).还有其余两种,但不适合i,它们是:
dynamic_cast<类型名>(变量名),const_cast<类型名>(变量名);
不需要包含任何头文件。
luda123
2005-08-11
打赏
举报
回复
long(i)是产生一个long类型的临时变量,还是改变i 的类型(即扩展 i的存储空间至long类型的大小
afx_swallow
2005-08-11
打赏
举报
回复
both of them have the same meaning!
llf_hust
2005-08-11
打赏
举报
回复
没有区别,都是一样的意思
foochow
2005-08-11
打赏
举报
回复
都一样
long(i) ...c++
(long)i....c
String转
int
本套视频详细讲解了String如何转换成
int
,这在开发实践中会频繁遇到。
int
类型需要从文本框录入,如学生身高,服务器接收到的是String类型,使用时需要转换成
int
类型。 类型转换时需要使用到包装类的方法,8种基本...
C/C++:
long
int
与
long
long
的
区别
long
int
long
int
即
long
,给人的感觉好像是长整型,但实际上,它和
int
一样,只有32位。cppreference给出的定义是——
int
- basic
int
eger type. The keyword
int
may be omitted if any of the modifiers ...
int
,
long
和
long
long
的
区别
int
,
long
和
long
long
的
区别
int
unsigned
int
0~4294967295
int
-2147483648~2147483647
long
unsigned
long
0~4294967295
long
-2147483648~2147483647
long
long
long
long
:-9223372036854775808~9223....
long
与
int
与
long
long
的
区别
Long
与
int
的
区别
早期的操作系统是16位系统,
int
用二字节表示,范围是-32768~32767;(五位数)
long
用4字节表示,范围是-2147483648~2147483647。(十位数) 后来发展到32位操作系统,
int
用4字节表示,与...
关于
int
、short
int
、
long
int
、
long
long
的
区别
早期的操作系统是16位...
int
用4字节表示,与
long
相同。 目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别: 32位编译系统:
int
占四字节,与
long
相同。 64位编译系统:
int
占四字
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章