我正在學習C語言。 當我將一個元素的數組值賦給另一個時,(看起來)奇怪的事情發生。 我的代碼如下。將數組的元素賦值給另一個時,意外的值包含
int main(void){
int i =0;
char a2[] = "aaaa";
char a1[] = "bbb";
printf("%lu\n",sizeof(a2));
printf("%lu\n",sizeof(a1));
printf("%c\n",a2[4]);
printf("---\n");
for(i =0; i < sizeof(a2); i++){
a2[i]=a1[i];
printf("%c\n", a2[i]);
}
printf("---\n");
printf("%c\n", a2[4]);
return 0;
}
結果在下面。
5 4 --- b b b b --- b
我不知道爲什麼
一個[4]
A2 [4]值是 「B」。首先,我想如果我嘗試編譯這段代碼,編譯器會通過錯誤,但它說OK。 因此,我顯示結果,並看到a2 [4]元素包含「b」字符。 數組如何在C中工作?
我應該學習更深入理解機制的概念嗎?
注意:在打印'size_t'值時,使用'「%zu」'而不是''%lu「'。 – chux
注意:使用'char a2 [] =「abcd」; char a1 [] =「efg」;'很可能會促成更深入的理解。 – chux
謝謝** chux **!我必須嘗試這種情況。 – csyouk