前言
有些细节未留意过,确认一下.
实验
int main()
{
int i = 0;
// 经常见到C数组的初始化为 char sz_buf[4] = { '\0' };
// 如果要初始化成其他值会怎样?
char sz_buf[4] = { (char)0xaa }; // 这样初始化不好使, 只有第一个字符是0xaa, 其他字符是0x00
printf("1\n");
memset(sz_buf, 0xaa, sizeof(sz_buf)); // c数组的初始化只能用memset来做
sprintf(sz_buf, "%c%c%c", 'h', 'l', 'l'); // sprintf是加'\0'的, 数组定义时,要多留一个'\0'的位置
for (i = 0; i < 4; i++) {
printf("%2.2X ", sz_buf[i]);
}
return EXIT_SUCCESS;
}