如果你有:
unsigned char data[] = {0x00, 0x02, 0xEE};
长度是 3 还是十六进制值代表两个或更多字节,因此等于 6?
最佳答案
该数组的类型为 unsigned char[]
,因此它包含的值(与)unsigned char
一样大,应该为 1 个字节。由于该数组包含 3 个值,因此其总大小为 3 个字节。
sizeof
运算符(operator)可以帮助您解决这些问题:
unsigned char data[] = {0x00, 0x02, 0xEE};
int main(void) {
printf("size of array in bytes: %d\n", sizeof data);
printf("size of single element: %d\n", sizeof *data);
printf("quotient: %d\n", (sizeof data) / (sizeof *data));
return 0;
}
关于c - 在用十六进制值填充的 C char 数组中,长度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207333/