如果我設置一個數組變量a [] =「abc」,然後設置另一個數組變量b [] = {'d','e','f'},我最後的輸出代碼是printf (「%s」,b),它的輸出值是「defabc」,爲什麼?我的輸出是數組b,但輸出值將首先輸出數組b,然後輸出數組一秒鐘。整個代碼在下面。數組輸出
#include<stdio.h>
void main(){
char a[]="abc";
char b[]={'d','e','f'};
printf("%s",b);
}
輸出是「defabc」。 而數組b的字符串長度是7爲什麼?
我沒有看到 「defabc」 作爲輸出。 –
您在b中沒有空終止符,所以函數會讀取過去的緩衝區,並且發生下一個棧是 –
@AdityaK這是程序員做錯事情時_undefined_行爲的快樂。 ;) –