1
void func(char a, int num)
{
    printf("%c",a);
}

int main()
{
     func("a", 6); //not func('a',6);
     printf("\n");
     func("b", 2); //not func('b',6);
}

ヌル文字を含むaとbのchar配列を渡していることを理解しています\0。誰かがそれがどのように文字を印刷することになったのか、$そして&

4

2 に答える 2

4

それは、おそらくアドレスの一部であり、とのASCIIコード"a"と一致するものを印刷することになる可能性があります。"b"$&

于 2012-10-31T06:15:33.000 に答える
2

リテラル文字列へのポインタを渡していますが、文字が必要funcです。配列を受け取るように変更します。

void func(char *a, int num)
{
    printf("%c",a[0]); // also note that to print a char you need to
                       // 'select' a char from the array
}

aそうしないと、アドレスが最初のバイトとして持つものをASCII表現したcharに出力されることになります。

于 2012-10-31T06:16:06.017 に答える