815116820 发表于 2014-5-26 20:56:49

为什么语句调换位置之后会报错?

第一种
#include<stdio.h>
main()
{
   int *n;
      int a;
      n = (int)(void*)malloc(sizeof(int)*10);
}   
第二种
#include<stdio.h>
main()
{
   
      int a;
      n = (int)(void*)malloc(sizeof(int)*10);
      int *n;
}   
      
为什么第二种会报错?





oggplay 发表于 2014-5-26 20:56:50

先定义在使用

kikiatw 发表于 2014-5-26 21:27:54

因為編譯器是從上到下的, 你先用n變數才定義n變數, 就錯了

HHR 发表于 2014-5-26 21:35:10

C 是自顶向下执行,有 #号 的预编译,读到 " n = (int)(void*) ……"时不知道n是什么,,,
至于你的程序,在VC6.0 行不通,,

815116820 发表于 2014-5-26 22:47:00

oggplay 发表于 2014-5-26 22:06 static/image/common/back.gif
先定义在使用

大神一语惊醒梦中人!

oggplay 发表于 2014-5-26 22:54:44

815116820 发表于 2014-5-26 22:47 static/image/common/back.gif
大神一语惊醒梦中人!

打错了,先声明后使用
页: [1]
查看完整版本: 为什么语句调换位置之后会报错?