brakepad2008-10-31 19:23:16
#include
#include
void f(n){
int a[n];
a[n]=12;
printf("%d\n",a[-1]);
return;
}


int main(){
f(5.5);
return 0;
}

gcc居然编译通过。怎么回事。请高手指点
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Target: x86_64-linux-gnu。
Thread model: posix
brakepad2008-10-31 20:58:57
粘贴错误
brakepad2008-10-31 21:00:10
头文件 显示不出来
tty2008-10-31 22:23:11
当然通过,浮点数cast到整数 -1就是18446744073709551615
tty2008-10-31 22:29:52
-1是4294967295 如果用32位整数
brakepad2008-11-01 01:24:40
回复:当然通过,浮点数cast到整数 -1就是18446744073709551615
tty2008-11-01 01:58:34
在C里,不声明类型就默认是整数 变量数组是C99的新玩艺
brakepad2008-11-01 02:29:26
"不声明类型就默认是整数" 是某个版本的新东西,还是一直是这么定义的
tty2008-11-01 02:48:48
回复:在C里,不声明类型就默认是整数 变量数组是C99的新玩艺
奉旨灌水2008-11-01 03:16:29
你还不如用:“踢踢歪”
tty2008-11-01 05:03:49
一直这样定义的
tty2008-11-01 06:38:26
7~tty_write_message(tty, ": warning, "); 还有 (图)