-3

私はObjective-Cに比較的慣れていませんが、Cのスーパーセットであることは知っていますが、このCコードをGCCでコンパイルしようとすると、エラーが発生し、コードを実行できません。

  #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()、2番目のようにポインタを渡す必要があります。整数のアドレスを に渡す必要があります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 に答える