これは私のCコードです:実行すると予期しないCコード出力
#include <stdio.h>
int main(){
int x[] = {6,1,2,3,4,5};
int *p=0;
p =&x[0];
while(*p!='\0'){
printf("%d",*p);
p++;
}
return 0;
}
出力が612345から448304448336
数字はマイナス記号の後に、なぜ私のコードは、これを与えているどのようなものがありますか?
'char'配列はNULLで終了します。 –
@ NiklasB。あなたが特に "コンテンツ"でそれらを宣言するか、\ 0を最後に追加することによってそれらを終わらせることができます。 char [10]を宣言すると、char [9]またはchar [10]がヌル文字であるという保証はありません。 int x []をchar x []に置き換えると、次のように表示されます。 – RussS
@Niklas B .:いいえ、*の文字列があります。 – DarkDust