文字配列の最後に「/o」を配置することになっていることはわかっていますが、「printf ("%s\n", kk);」と出力したい場合は 、それは「abcdepqrst」を与えます。なぜこうなった?これは私が実行しているプログラムです。
#include<stdio.h>
int main()
{
char kk[]={'a','b','c','d','e'};
char s[]="pqrst";
printf("%s\n",s);
printf("%s\n",kk);
}
出力:
pqrst
abcdepqrst
ここで配列 'kk' の前に配列 's' を宣言することにより、配列を宣言する順序を逆にしようとしましたが、ideone linkですが、それでも同じ出力が得られます。ideone がメモリを変数に割り当てる方法に関係があると思います。
#include<stdio.h>
int main()
{
char s[]="pqrst";
char kk[]={'a','b','c','d','e'};
printf("%s\n",s);
printf("%s\n",kk);
}
出力:
pqrst
abcdepqrst