C 以十六进制值初始化数组

标签 c arrays string hex unsigned

我想初始化一个 16 字节的十六进制值数组,尤其是 0x20(空格字符)值。

正确的做法是什么?

unsigned char a[16] = {0x20};

unsigned char a[16] = {"0x20"};

谢谢

最佳答案

例如定义这个

unsigned char a[16] = {0x20, 0x41, 0x42, };

将如图所示初始化前三个元素,并将其余元素初始化为 0

第二种方式

unsigned char a[16] = {"0x20"};

不会做你想做的事:它只是定义了一个包含四个字符 0x20 的以 nul 结尾的字符串,编译器不会将其视为十六进制值。

关于C 以十六进制值初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33454988/

相关文章:

c - SIGTRAP : trace trap error in Golang wrapping C library, 但仅在运行 go test 时

java - 以螺旋顺序打印二维数组——进入无限循环

Char* 数组不保留值 C

c - 为什么FIQ需要用汇编语言而不是C语言编写?

C 中 strtok 后无法正确计算 CSV 中的元素

c++ - C/C++,NTFS。多个重解析点

c++ - 本地覆盖字符串提取运算符

javascript - 在两个(或更多)数组中查找匹配的单元格序列的最有效方法是什么?

javascript - 如何按三个不同的字段对 javascript 数组进行排序?

字符 arr = "...";在C程序中导致崩溃