-3

我对 Objective-C 比较陌生,我知道它是 C 的超集。但是当我尝试在 GCC 中编译这个 C 代码时,它给了我一个错误,我无法执行代码。

  #include <stdio.h>  
  int main(){  
   int x;
   printf("Input int:\n");
   scanf("%d", x);
   printf("%d", x);
    return 0;             
}

当我执行其他代码时,没有错误,但输出错误。注意:唯一的变化是“int *x”。

   #include <stdio.h>  
   int main(){  
   int *x;
   printf("Input int:\n");
   scanf("%d", x);
   printf("%d", x);
    return 0;             
}

  INPUT: 3
  OUTPUT: 2147307520
4

1 回答 1

9

您需要像第一个那样为整数分配空间,但是您需要scanf()像第二个那样传递一个指针 - 有点;您需要将整数的地址传递给scanf(). 你应该写:

#include <stdio.h>  

int main(void)
{  
    int x;
    printf("Input int:\n");
    scanf("%d", &x);
    printf("%d\n", x);
    return 0;             
}

这是现在工作的 C 代码;它也有可能像 Objective C 一样工作。在打印输出的末尾添加换行符也是一个好主意。

于 2013-02-23T03:00:48.663 回答