0

文字列の長さは n+1 でなければならないことはわかっていますが、何らかの理由で私のプログラムは sizeof(string) を n-2 として出力しています。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char name [] = "Tom";
    int x = sizeof(name);
    int i;

    printf("sizeof(name) = %d\n", i);

    for(i = 0; i < x; i++)
    {
        printf("Character at %d is %c\n", i, name[i]);
    }

    return 0;
} 

誰でも理由を説明できますか?

4

1 に答える 1

6

iではなく、印刷していxます。
i初期化されていないため、未定義の動作が発生します。

于 2013-10-07T19:16:55.950 に答える