您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  下面的C++代码能编译么? 【注册男护士专用博客】          

下面的C++代码能编译么?

www.nanhushi.com     佚名   不详 

  #include <stdio.h>
  #define NUM getnum()
  int getnum()
  {
  int x = 0;
  scanf("%d", &x);
  printf("%d\n", x);
  return x;
  }
  int main(char** argc, int argv)
  {
  int array[NUM];
  printf("array size =%d\n",sizeof(array));
  return 0;
  }
  在g++中居然可以编译。
  输入10,返回array size=40
  输入20,返回array size=80
  输入-1,返回array size =-4!!
  问题:
  1.Examda提示: 这样的做法符合C++标准么?连sizeof成了运行期计算
  2.这个array的空间应该分配在heap上,而不是stack上。g++做了什么手脚?考试大(www.Examda。com)

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目