c - 在用十六进制值填充的 C char 数组中,长度是多少?

标签 c arrays

如果你有:

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/

相关文章:

无法使用 lwIP 原始 TCP 连接接收对 HTTP 请求的多个响应

c - C语言从链表任意位置删除元素

c - mq_open() - EACCES,权限被拒绝

静态全局变量可以优化为在堆栈中吗?

python - 不同大小数组的 Numpy 运算

javascript - 如何将状态推送到包含特定项目的数组?

c - 在 C 接口(interface)中从 Prolog 获取列表元素

php - 如何按值过滤二维数组

c++ - 声明一个字符串数组并查找其中的元素数 (openFrameworks)

c# - C# 中的可变长度数组