首页 > 技术知识 > 正文

【C语言进阶】字节数组的另一种写法

本文给你介绍一种C语言中字节数组的写法,也许你还没见过?

1 示例代码

话不多说,我们直接来看示例代码:

复制​ #include int main(int argc, const char *argv[]) { unsigned char i; unsigned char array0[] = {0x12, 0x34, 0x56, 0x78, 0x90}; unsigned char array1[] = “\\x12\\x34\\x56\\x78\\x90”; ​ for (i = 0; i < 5; i++) { printf(“%02x “, array0[i]); } ​ printf(“\\n”); ​ for (i = 0; i < 5; i++) { printf(“%02x “, array1[i]); } ​ printf(“\\n”); return 0; } 2 代码解读

这个demo例子其实很简单,就是用两种方式定义了字节数组:

方式1:

使用的是传统数组的定义方式, 复制unsigned char array0[] = {0x12, 0x34, 0x56, 0x78, 0x90};

方式2:

采用的是比较罕见的定义方式, 复制unsigned char array1[] = “\\x12\\x34\\x56\\x78\\x90”;

** **这里的 “\\x12\\x34\\x56\\x78” 其实是利用了 \\x 转移字符,它表示的含义与第一种方式定义字节数组是一样的。

我们来跑一下这个demo:

复制12 34 56 78 90 12 34 56 78 90

我们可以清晰看到,输出结果是一样的。

【C语言进阶】字节数组的另一种写法-c语言中字节数

3 总结

C语言的很多语法是比较灵活的,有时候换一种写法,我们也应该要知道其本质含义。

就像本文介绍的这种定义字节数组的写法,在某些场合下,还是很管用的,就如我之前接手的一个项目,到处都是这种常量数组的定义。

好了,本文的介绍就到这了,知识点你都get到了吗?

猜你喜欢