1、{0} 初始化

int arr1[3] = {0};

使用 {0} 的方式最简洁,一般在定义的时候使用。

2、for 循环初始化

int arr2[3];

for (int i = 0; i < 3; i++) {

arr2[i] = i;

}

使用 for 循环的好处是:可以将每个元素设为不同的值。

3、memset 函数

memset 函数声明为:void *memset(void *str, int c, size_t n)

将 str 中当前位置后面的 n 个字节 (typedef unsigned int size_t )用 c 替换并返回 str 。

int arr3[3];

memset(arr3, 0, sizeof(int) * 3);

memset 一般使用“0”初始化内存单元,通常是给数组或结构体进行初始化,或清空数组或结构体。

一般如 char、int、float、double 等类型的变量直接初始化即可,如果用 memset 的话反而显得麻烦。

三种方式的示例代码如下:

需要注意的是:memset函数按字节对内存块进行初始化,所以不能用它将 int 数组初始化为 0 和 -1 之外的其他值。

memset 赋值为 -1 或 0,最后的结果是正确的:

但使用memset赋值为-1和0以外的值,最终的结果并不是期望值。比如赋值为1,则如下图所示:

因为 memset 是对每个字节进行赋值的,已知一个 int 为4字节,那么 memset 赋值时为二进制则为:

00000001 00000001 00000001 00000001 = 16843009

c语言定义不定长数组初始化_C语言数组初始化的三种方式相关推荐

  1. c语言定义不定长数组初始化_C语言如何定义一组长度不定的数组?

    1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区 //公众号:c语言与cpp编程 st ...

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

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

  3. c语言定义不定长数组初始化_数组的定义,初始化和使用,C语言数组详解

    数组可以说是目前为止讲到的第一个真正意义上存储数据的结构.虽然前面学习的变量也能存储数据,但变量所能存储的数据很有限.不仅如此,数组和指针(后续会讲)是相辅相成的,学习数组可以为学习指针打下基础. 那 ...

  4. C语言 函数不定长参数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.自定义不定长参数的函数 1.va_start/va_arg/va_end 案例一 2.va_sta ...

  5. C语言 函数不定长参数 ##__VA_ARGS__经典案例 - C语言零基础入门教程

    目录 一.##__VA_ARGS__简介 二.##__VA_ARGS__经典案例 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.## ...

  6. Java 定义数组的三种方式,int...x动态参数列表

    定义数组的三种方式 以 int型 的一维数组为例,说说三种定义方式 int[] arr = new int[3]; 这是最常用的方式,定义时就含有默认值,可以后续赋值 public class Dem ...

  7. 数组初始化的三种方式

    数组初始化的三种方式 动态初始化:数组定义与为数组分配空间和赋值的操作分开进行: 静态初始化:在定义数字的同时就为数组元素分配空间并赋值: 默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此 ...

  8. 代码示例:Java中定义数组的三种方式

    在Java中,数组的定义有三种方式,其基本语法格式如下: 数组类型[] 数组名 = new 数组类型[数组长度]; 数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,...}; ...

  9. 机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc

    黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序 黄金分割法的优化设计 实验报告 学院:机电工程 机制自动化11-03班 学号:541102010326 姓名:刘点点 1,黄金 ...

最新文章

  1. OARCLE11G的密码管理
  2. java web基本流程
  3. python 包管理工具poetry
  4. Techo 大会:AI 会替代 DBA 么?
  5. 计算机组成原理第二版第4章的答案,计算机组成原理第4章习题参考答案
  6. Python操作Jira提交BUG
  7. 什么是 css,关于css是什么
  8. OpenJudge 2803 碎纸机 / Poj 1416 Shredding Company
  9. 浏览器的NPAPI插件技术不要学了,已经淘汰几年了
  10. matlab2010 simulink,张德丰 (2010) MATLAB/Simulink建模与仿真实例精讲. 机械工业出版社, 北京....
  11. 配置Becon frame中的Carplay的Interworking和Vendor Specific字段信息
  12. hu沪江计算机词汇,拼音带hu的字大全150个拼音含hu的字组词 - 小孩子点读
  13. 微信h5获取用户地址信息
  14. 第五届传智杯-初赛【B组-题解】
  15. 【转】电阻屏和电容屏之 二
  16. 【RISC-V】 li指令
  17. Python【3】:格式化输出
  18. Windows 11 系统下载,正式版尚未发布
  19. 把黄鸟hcy请求转换为autojs请求
  20. 基于OneNet平台设计的多节点温度采集系统-有人云4G模块+STM32

热门文章

  1. airpods pro是按压还是触摸_数码产品:airpodspro触摸区域在哪里 触摸感应在哪
  2. 继电保护测试仪检定装置的应用
  3. 【机器学习】模糊信息粒化(Fuzzy Information Granulation, FIG)
  4. 用R做中文LDA主题模型可视化分析
  5. ureka高可用配置 及其clound知识点
  6. ES5继承和ES6继承的区别
  7. 机器人的避障常用方案
  8. vue 使用vue-print-nb打印element表格展示不全
  9. HCIE-RS重磅消息!点击查看政策详情解读
  10. 什么便签可以在桌面显示内容,可以在电脑桌面显示文本的便签软件