文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>奇怪的代码,分析一下为什么

奇怪的代码,分析一下为什么

时间:2010-04-26  来源:BIRDCHILD

奇怪的代码.

今天发现了一段奇怪的代码.这段代码竟然可以在GNU GCC/G++下编译通过,并且能够运行.但是运行结果却在想象之中意料之外.

#include <stdio.h>

#define NUM getnum()

    int getnum(){

    int x=0;

    scanf("%d", &x);

    printf("%d\n", x);

    return x;

}

int main(int argc, char** argv){

    int array[NUM];

    printf("array size = %d\n", sizeof(array));

    return 0;

}

在GCC/G++下可以编译通过,运行结果如下:

10

10

arraay size = 40

20

20

arraay size = 80

-1

-1

arraay size = -4

现在的问题是:

1.sizeof是在运行期计算的么?

2.array的空间到底是分配到哪儿了,heap or stack?

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载