- 主题:这个程序的输出是多少
从语义上,未初始化的变量的值是无法得知的。
从实现上,局部变量通常放在一个称为栈的存储区上,而栈上原有的数据是未知的,从而未初始化变量的值是未知的。
【 在 l234567890 的大作中提到: 】
这个原因是什么呢?
这是一道题
【 在 plamancer 的大作中提到: 】
: 刚开始学就不要纠结这个了
: 记住一个原则:变量使用前要初始化
: 【 在 l234567890 的大作中提到: 】
: ...................
--来自微微水木3.5.12
--
FROM 103.90.178.*
按说是未知的,但是输出的是0,b[2]就不是了
所以很奇怪
【 在 ArchLinux 的大作中提到: 】
: 从语义上,未初始化的变量的值是无法得知的。
: 从实现上,局部变量通常放在一个称为栈的存储区上,而栈上原有的数据是未知的,从而未初始化变量的值是未知的。
: 这个原因是什么呢?
: ...................
--
FROM 171.11.245.*
有啥奇怪的,未知意味着可以是任何值
【 在 l234567890 的大作中提到: 】
: 按说是未知的,但是输出的是0,b[2]就不是了
: 所以很奇怪
--
FROM 124.126.3.*
显然这不是一道什么正经题,出这道题的人恐怕也没把C语言学明白
【 在 l234567890 的大作中提到: 】
:
: 这个原因是什么呢?
: 这是一道题
: 【 在 plamancer 的大作中提到: 】
: : 刚开始学就不要纠结这个了
--
FROM 42.249.18.*
gcc version 4.8.5 编译输出是3,0
vc6编译出来就是不定值
不过windows上装的codeblock使用的也是gcc编译出来的是不定值
难道是因为前面gcc4.8是在linux系统上的原因?
【 在 jimmycmh 的大作中提到: 】
: 有啥奇怪的,未知意味着可以是任何值
--
FROM 171.11.245.*
正确的程序一定可以得到正确的结果。
错误的程序则未必得到错误的结果。
你这是个错误的程序。
没啥好讨论的。
消化科医生可以研究屎,
厨师没必要研究,
别浪费时间了。
【 在 l234567890 的大作中提到: 】
: int a,b[5];
: a=0; b[0]=3;
: printf("%d,%d\n",b[0],b[1]);
: 为什么,谢谢
--
修改:flw FROM 163.125.197.*
FROM 163.125.197.*
跟系统无关 最多是gcc填了一个0
【 在 l234567890 的大作中提到: 】
: gcc version 4.8.5 编译输出是3,0
: vc6编译出来就是不定值
: 不过windows上装的codeblock使用的也是gcc编译出来的是不定值
: 难道是因为前面gcc4.8是在linux系统上的原因?
: --
发自「今日水木 on M2102K1AC」
--
FROM 114.254.2.*
同样是gcc,为啥wun和linux下输出b[1]不一样呢,b[2]就是不定值了。
你看我在网上的那个在线编译的就是这种情况
【 在 dawei78 的大作中提到: 】
: 跟系统无关 最多是gcc填了一个0
: 【 在 l234567890 的大作中提到: 】
: : gcc version 4.8.5 编译输出是3,0
: ...................
--来自微微水木3.5.12
--
FROM 171.10.153.*
对 就是gcc对不同平台的处理不同 再说你版本一样吗
【 在 l234567890 的大作中提到: 】
:
: 同样是gcc,为啥wun和linux下输出b\[1\]不一样呢,b\[2\]就是不定值了。
: 你看我在网上的那个在线编译的就是这种情况
:
: --来自微微水木3.5.12
: --
:
发自「今日水木 on M2102K1AC」
--
FROM 222.129.32.*
有关于这方面的说明吗
【 在 dawei78 的大作中提到: 】
: 对 就是gcc对不同平台的处理不同 再说你版本一样吗
: 发自「今日水木 on M2102K1AC」
--
FROM 1.192.38.*