配列変数a [] = "abc"を設定し、別の配列変数b [] = {'d'、 'e'、 'f'}を設定すると、私の最後の出力コードはprintf ( "%s"、b)、出力値は "defabc"です、なぜですか?私の出力は配列bですが、出力値は最初に配列bを出力し、次に出力配列を1秒出力します。 全体のコードは以下の通りです。配列出力
#include<stdio.h>
void main(){
char a[]="abc";
char b[]={'d','e','f'};
printf("%s",b);
}
出力は「defabc」です。 配列bの文字列長は7ですなぜですか?
として
def
を印刷します。 –あなたはbにヌルターミネーターを持っていないので、関数は過去のバッファを読み込み、スタック上の次の行は –
@AdityaKです。プログラマが何か間違っていると、_undefined_の動作の喜びです。 ;) –