首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言简单题目,颠覆小弟我的价值观

2013-07-08 
C语言简单题目,颠覆我的价值观int main(){int i 10i++char str[i]strcpy(str, 1234567890123456789

C语言简单题目,颠覆我的价值观
int main()
{
    int i = 10;
    i++;
    char str[i];

    strcpy(str, "1234567890123456789");
    printf("sizeof(str):%d,%s\n", sizeof(str),str);

    return 0;
}

这个段代码,居然运行正常,输出正常?
颠覆我的价值观啊!! 
可以这样动态定义临时数组的?
拷贝字节太多,程序居然也没有崩溃!!
Gcc和C-Free测试过输出为
sizeof(str):11,1234567890123456789

C
[解决办法]
 C语言中,直到C99标准出现之前,声明数组时在方括号内只能使用整数常量表达式。而C99做了很大改进,允许数组的[ ]中的值是整形变量或是整形表达式。

热点排行