int i = i

peeky01 2011-09-25 09:38:40
代码如下:

int var = 1;
int main()
{
int i = i;
cout << i;
system("pause");
return 0;
}


请问:i一定是1吗?还是取决于不同编译器
...全文
223 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
alweeq86 2011-09-25
  • 打赏
  • 举报
回复
2147348480
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
柯本 2011-09-25
  • 打赏
  • 举报
回复
to:healer_kx

看过汇编了,bcb进入main时,eax就是1,而i就用了eax
如果中间有其它代码,那就是随机值了
healer_kx 2011-09-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 keiy 的回复:]

与编译器有关,我的测试,gcc,vc(2008)都不为1
只有bcb结果是1
[/Quote]

看看汇编做了什么?不会是发现未初始化,就随便找个global的值 assign了吧?哈哈。
柯本 2011-09-25
  • 打赏
  • 举报
回复
与编译器有关,我的测试,gcc,vc(2008)都不为1
只有bcb结果是1
taodm 2011-09-25
  • 打赏
  • 举报
回复
楼主,这类垃圾代码都集中在一本叫《C++ Gotchas》里透彻讲解了。
别浪费生命吧。
peeky01 2011-09-25
  • 打赏
  • 举报
回复
木有写错的好吧。。摩根在线笔试题。。今天刚考的
taodm 2011-09-25
  • 打赏
  • 举报
回复
珍惜生命,远离未初始化变量
飞天御剑流 2011-09-25
  • 打赏
  • 举报
回复
大概是把1误写为i了,然后大家就错当成什么高深莫测的东西了,哈哈。
healer_kx 2011-09-25
  • 打赏
  • 举报
回复
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Error!

Program: e:\SVN3\KxC\DDe\Debug\DDe.exe
Module: e:\SVN3\KxC\DDe\Debug\DDe.exe
File:

Run-Time Check Failure #3 - The variable 'i' is being used without being initialized.

(Press Retry to debug the application)
---------------------------
中止(A) 重试(R) 忽略(I)
---------------------------

我是出不来1的。
lei_jlu 2011-09-25
  • 打赏
  • 举报
回复
这好像是某个公司的笔试题。
lei_jlu 2011-09-25
  • 打赏
  • 举报
回复
我调试的结果是i的值是不同编译器不同的值,也就是说i所占的内存地址里存放的值是不可预知的。
tlnlove2011 2011-09-25
  • 打赏
  • 举报
回复
对啊 结果为什么是1呢-
peeky01 2011-09-25
  • 打赏
  • 举报
回复
我也不知道,不然不发帖了。。我只想知道大家的编译器上结果是不是也为1,还是这个结果取决于编译器
wangmeng1105 2011-09-25
  • 打赏
  • 举报
回复
为什么会是1呢?求解
peeky01 2011-09-25
  • 打赏
  • 举报
回复
运行很正常。。结果为1,摩根的一道笔试题
healer_kx 2011-09-25
  • 打赏
  • 举报
回复
C# Java肯定就编译错误了。C++估计给个Warning。。。
AndyZhang 2011-09-25
  • 打赏
  • 举报
回复
没意思
淡然一笑 2011-09-25
  • 打赏
  • 举报
回复
这样的代码不会报错?
Jake443403168 2011-09-25
  • 打赏
  • 举报
回复
用没有初始化的变量初始化自己,还是没初始化,里面存的是脏数据
「已注销」 2011-09-25
  • 打赏
  • 举报
回复
没输出,哈哈。缓冲区没满,也没用强制输出 std::endl

VC6.0 Debug -858993460
Release 4218345

这个在C语言标准里面未定义的吧,应该是编译器厂商决定的。
加载更多回复(3)

64,637

社区成员

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

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