|  |      1moroumo      2013-06-17 10:05:42 +08:00  1 程序是按照代码的顺序由上到下执行的。 既然你调换了顺序,当然结果就是不同的了。 | 
|  |      2xunyu      2013-06-17 10:12:26 +08:00  1 fathoms 没赋值的话是随机数, | 
|  |      3LokiSharp      2013-06-17 10:13:22 +08:00  1 对调一下的话,因为 fathoms 在使用前没有初始化,你能得到的只有一串没有意义的随机数 | 
|  |      4ETiV      2013-06-17 13:23:51 +08:00  1 int feet, fathoms; feet = 6 * fathoms; fathoms = 2; 如果编译的时候没报warning, 建议你换一个C的环境. | 
|  |      5Golevka      2013-06-17 13:27:44 +08:00  1 教练我想要隔壁ML家的val-binding =v= | 
|  |      7bengol      2013-06-17 14:45:17 +08:00  1 http://www.tenouk.com/Bufferoverflowc/Bufferoverflow2a.html details on function call, including how the local variables are initialized. | 
|      9detailyang      2013-06-17 17:24:57 +08:00  1 我习惯声明 变量时初始化...即便是0 | 
|  |      10jedyu      2013-06-17 17:31:45 +08:00  1 楼主骗分 | 
|      12clowwindy      2013-06-17 21:42:10 +08:00  1 $ gcc -Wall main.c main.c: 在函数‘main’中: main.c:7:8: 警告:此函数中的‘fathoms’在使用前未初始化 $ clang -Wall main.c main.c:7:14: warning: variable 'fathoms' is uninitialized when used here [-Wuninitialized] feet = 6 * fathoms; ^~~~~~~ main.c:4:14: note: initialize the variable 'fathoms' to silence this warning int fathoms; ^ = 0 1 warning generated. $ clang --analyze main.c main.c:7:12: warning: The right operand of '*' is a garbage value feet = 6 * fathoms; ^ ~~~~~~~ 1 warning generated. |