char a[10];
scanf("%s",a);
int i=0;
while(a[i]!='\0')
printf("\n%c",a[i++]); //similar to printf("%s",a);
char *b;
b=malloc(10*sizeof(char));
scanf("%s",b);
i=0;
while((b+i)!='\0')
printf("\n%c",*(b+i++)); //not similar to printf("%s",a);
入力"abcd"の場合、最初のループはa []を出力します。これは、printf()を使用する場合です。しかし、同じことは*bには当てはまりません。
2番目のループは、「\0」に遭遇するまであまりにも多く続きます。
つまり、これは、文字列の最後に「\ 0」が自動的に追加されるが、char型ポインターの最後には追加されないことを意味しますか?
そして、この'\ 0'を追加するのは誰の仕事ですか?コンパイラの?