我有這樣的代碼初始化「的字符串」
#include<stdio.h>
#include<string.h>
int main(void)
{
size_t i;
char arr[5] = "";
for(i = 0; i < 5; i++)
printf("%c ", arr[i]);
puts("");
memset(arr, '0', 5);
for(i = 0; i < 5; i++)
printf("%c ", arr[i]);
return 0;
}
爲什麼第一個printf只打印空間,而第二打印歸零
這究竟是爲什麼?
你期待第一個打印什麼?第二個呢? (真正的問題,它可能有助於他人回答他們的問題) –
您正在將字符'0'替換爲空字節到內存中。只需用''0'替換''0''。 – H2O
你爲什麼要這樣做?您的arr [5]僅包含「」和「\ 0」,並且您試圖最多打印五個索引。你對此有什麼期望? –