次のコードを見てください。
#include<stdio.h>
int main(void)
{
char name[7]={'E','R','I','C'};
printf("%s",name);
}
name
ERIC全体を出力します。なぜそうなのか?次のよう%s
に文字配列を初期化する場合にのみ機能するはずではありませんname
:
char name[7]={'E','R','I','C','\0'}; //With NULL terminator
これは明らかにヌル終了文字配列を想定しているため、次のことは考慮していません。
char name[7]="ERIC"