-3

次の 2 つの scanf ステートメントの違いは何ですか。

#include<stdio.h>  
void main()  
{  
    int a,b;
    clrscr();
    printf("\n Enter values for a and b");
    scanf("%d",&a); // Format specifier as %d
    scanf("%i",&b); // Format specifier as %i
    printf("\n a is %d and b is %i",a,b);
    getch();
}

値 a を 10 として、b を 20 として指定しました。出力として同じ値を指定しています。
だから私の質問は
、%d と %i の違いは何ですか??
各変数のメモリはどうですか??
フォーマット指定子として %d と %i の間に違いはありますか???

4

2 に答える 2

2

scanfのドキュメントを参照してください。便宜上、%iプレースホルダーとしての (integer) は次を意味します。

オプションで記号 (+ または -) を前に付けた任意の桁数。デフォルトでは 10 進数 (0 から 9) が想定されますが、0 プレフィックスは 8 進数 (0 から 7) および 0x 16 進数 (0 から f) を導入します。

... および%d(10 進整数) は次のことを意味します。

任意の数の 10 進数 (0 から 9) で、オプションで前に記号 (+ または -) を付けます。

于 2013-08-18T02:26:28.897 に答える