1
moroumo 2013-06-17 10:05:42 +08:00 1
程序是按照代码的顺序由上到下执行的。
既然你调换了顺序,当然结果就是不同的了。 |
2
xunyu 2013-06-17 10:12:26 +08:00 1
fathoms 没赋值的话是随机数,
|
3
LokiSharp 2013-06-17 10:13:22 +08:00 1
对调一下的话,因为 fathoms 在使用前没有初始化,你能得到的只有一串没有意义的随机数
|
4
ETiV 2013-06-17 13:23:51 +08:00 1
int feet, fathoms;
feet = 6 * fathoms; fathoms = 2; 如果编译的时候没报warning, 建议你换一个C的环境. |
5
Golevka 2013-06-17 13:27:44 +08:00 1
教练我想要隔壁ML家的val-binding =v=
|
7
bengol 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. |
9
detailyang 2013-06-17 17:24:57 +08:00 1
我习惯声明 变量时初始化...即便是0
|
10
jedyu 2013-06-17 17:31:45 +08:00 1
楼主骗分
|
12
clowwindy 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. |