今天在朋友圈看到一个朋友发的图片

是给数组初始化的代码

截图如下:

我看到这个代码,也让我着实惊了一下,写代码这么久,也没有见过这样子初始化的。

这个代码是出自海思的SDK里面的,华为的大牛还是很多啊,学习C语言的话,如果能把一份SDK代码看明白,看完,那是比看多少课程都会收获更多的。

我测试下这个代码

#include "stdio.h"#define MAX 10char array[MAX] = { [0 ...(MAX-1)] = '8' };
//char array[MAX] = {'A'};int main(void){for(int i = 0; i< MAX; i++)printf("array[%d]=%c\n",i,array[i]);return 0;
}

代码输出:

如果我用这样的方式初始化呢?

#include "stdio.h"#define MAX 10//char array[MAX] = { [0 ...(MAX-1)] = '8' };
char array[MAX] = {'A'};int main(void){for(int i = 0; i< MAX; i++)printf("array[%d]=%c\n",i,array[i]);return 0;
}

代码输出

当然,我们还可以这样初始化

#include "stdio.h"
#include "string.h"#define MAX 10//char array[MAX] = { [0 ...(MAX-1)] = '8' };
char array[MAX];int main(void){int i;memset(array,'B',MAX);for( i = 0; i< MAX; i++ )printf("array[%d]=%c\n",i,array[i]);return 0;
}

代码输出

最近重新看Linux内核代码,里面的C语言有很多精彩的地方,以后可以慢慢给大家说。还有一件事,Linux里面很多垃圾的代码也很多,特别是设备驱动,厂商的很多设备驱动写的并不是我们想象中的好,如果想提交patch给Linux内核社区,可以从这方面去找找。


最后,如果觉得不错,大家顺手点个赞,转发就是对我最大的鼓励和支持!

长按识别二维码关注公众号

这样给数组初始化,你肯定没有见过相关推荐

  1. c语言将数组初始化为1_C语言的数组初始化

    这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录 ...

  2. C/C++数组初始化的一些误区

    以前我这样初始化一个数组,并自我感觉良好: int a[5] = { 0 }; // 全部初始化为0 这种简单的写法让我非常爽,于是我又想把数组全部初始化为1: int a[5] = { 1 }; / ...

  3. 数组初始化使用(写)new与不使用(不写)new

    首先,数组初始化时,写不写new没有区别的.int arr[] = new int[]{ 3, 9, 8};或者int[] arr = {3,9,8};编译器遇到 int a[] = {3, 8, 9 ...

  4. int数组初始化_Java数组

    ###理解数组 Java的数组要求所有的元素为相同数据类型.既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有元素的类型相同就可以. 一旦数组的初始化完成,数组在内存中占用的空间就被固定下来 ...

  5. Java数组及二维数组初始化与赋值方法总结

    一维数组初始化 1.定义数组直接赋值 int a[]= {1,2,3,4,5}; 2.用new在数组中创建元素 int a[]=new int[]{1,2,3}; 注意:后面的[]不要忘了 3.创建指 ...

  6. c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)

    链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A  )是构成C语言程序的基本单位. ...

  7. Linux Kernel代码艺术——数组初始化

    前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑: const sys_call_ptr_t sys_call_table[__NR_syscall_max+ ...

  8. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

    C语言的二维数组初始化的几种方式介绍 1.直接赋值 2.循环对每个元素赋值 3.借用memset/memset_s初始化为0或-1 4.`数组所有元素初始化为相同值(用于大数组初始化贼方便)` 1.直 ...

  9. C/C++数组初始化的总结

    目录 数组定义不初始化会被随机赋值 数组初始化的几种形式 数组初始化为某一固定值 memset(数组名,值,sizeof(数组名)) fill(begin(),end(),value) 以前刚开始学数 ...

最新文章

  1. 【数学】Why Study Math 为什么学习数学
  2. 音视频技术开发周刊 | 227
  3. html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?
  4. Centos5 install vnc
  5. 在Amazon Elastic Beanstalk上部署Spring Boot应用程序
  6. python执行脚本时的命令行选项_Python 处理脚本的命令行参数(二):使用click
  7. solr5.2.1安装
  8. Excel如何拆分字符串
  9. Scala - 快速学习09 - 函数式编程:一些操作
  10. 二维码(生成二维码和扫描二维码)超简单 超简易
  11. 天微TM1650数码管驱动IC新旧版 驱动和注意事项
  12. cf 678E - Another Sith Tournament 【状压dp】
  13. 打印机 树莓派安装cpus_树莓派安装网络打印机
  14. ios 弹起软键盘position: fixed;失效
  15. 工业机器人安装调试与维护课程试卷_工业机器人安装、调试与维护教学课件作者阙正湘项目五工业机器人机械结构件的维修...
  16. 6. 存储过程:系统存储过程、临时存储过程、本地存储过程
  17. 《巴菲特致股东的信(第4版)》笔记——消费行为
  18. 如何清除DNS缓存,使用cmd命令清理DNS缓存方法
  19. 解决DLL注册失败的方法
  20. 本题要求将给定的n个整数从大到小排序后输出。

热门文章

  1. MATLAB图像小波变换
  2. 程序图片运行效果存在偏差问题
  3. 2010软考软件设计师冲刺精选【专家压轴模拟•下】
  4. 哔哩哔哩修改视频速度
  5. Diango博客--17.统计各个分类和标签下的文章数
  6. Python 第三方模块之 PDFMiner(pdf信息提取)
  7. 《操作系统》OS学习(五):连续内存分配 内存碎片、动态分配、碎片整理、伙伴系统
  8. python compare excel_python简单操作excle的方法
  9. 在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法
  10. python哪个版本支持xp_windows支持哪个版本的python