原文发于:http://qing.weibo.com/2059598087/7ac2f907330029ze.html

在C/C++中,可以在数组定义的时候对其进行初始化:

int a1[3] = {1, 2, 3};
int a2[3] = {0};                    //将数组a2各个元素赋值为0。
int a3[] = {1, 2, 3};
char s1[3] = {'a', 'b', 'c'};
char s2[] = "abc";

但是以下赋值方式是错误的:

int a4[3] = {};                    //无法通过编译;
char s3[3] = "abc";                  //编译错误,数组越界。

上一段中,第二个例子之所以错误,是因为“abc”是4个字符,除了a/b/c三个字符之外,还有一个结束字符 '\0' 。

在赋值过程中最容易误解的地方是误以为以下代码将a5全赋值为1。

char a5[3] = {1};                //这行代码之后,数组a5各项值分别为1, 0, 0。

这是因为在C/C++中,“如果初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为0。”因此我们便可以通过int a2[3] = {0};来将数组a2全赋值为0。

要将数组a5的各个元素均赋值为1,可以采用如下方法:

memset(a5, 1, 3);

其中memset在包含在头文件string.h中。

特别需要注意的是,memset的根据针对字节进行操作的,因此以下代码并不会得到我们期待的结果。

int a6[3];
memset(a6, 1, 3 * sizeof(int));    //在32位机器下,a6[0]~a6[2]的值均为16843009。

要对数组进行批量赋值,可以使用memcpy函数。或者将数组封装在一个struct中。

给字符数组赋值的方法

数组怎么一次批量赋值

字符串数组初始化错误

数组初始化误解

memset说明

memset及memcpy详细说明

C、C++数组初始化,数组赋值相关推荐

  1. java数组初始化赋值_数组初始化与赋值

    数组初始化与赋值 2009-09-17 如果有几个object,他们的类型是相同的.创建它们的时候,它们可能在堆里的各个散落位置产生,这样的话,存取效率就会不高.既然它们的类型是相同的,那么我们可以用 ...

  2. java初始化该字符串值_java字符串数组初始化和赋值

    //一维数组 String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组 String[] str = new String[]{" ...

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

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

  4. Java字符串数组初始化和赋值

    原文地址:http://blog.csdn.net/bobobe/article/details/45157529 //一维数组 String[] str = new String[5]; //创建一 ...

  5. python多维数组初始化后赋值的问题

    当使用下述代码进行数组初始化时 >>>a = [[0]*3]*3 [[0,0,0],[0,0,0],[0,0,0]] >>>a[1][1] = 1 [[0,1,0] ...

  6. java数组初始化0_Java自学-数组 初始化数组

    Java 如何初始化数组 步骤 1 : 分配空间与赋值分步进行 public class HelloWorld { public static void main(String[] args) { i ...

  7. [小错误][JAVA][数组初始化]数组静态初始化和动态初始化不能混用

    错误 return new int[1]{shorter*k}; error: array creation with both dimension expression and initializa ...

  8. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  9. Java一维数组初始化与赋值

    public class ArrayDemo01 {public static void main(String[] args) {//静态初始化:创建 + 赋值int[] a = {1,2,3,4, ...

  10. c语言数组初始化未赋值则默认是任意还是0?

    https://bbs.csdn.net/topics/310142759 一般来说 全局变量.静态变量处于数据区,默认初始化为0 (如果指定初始值,则为指定的值) 而局部变量处于堆栈区,其数值是随机 ...

最新文章

  1. ICML 2020论文贡献榜排名出炉:Google单挑斯坦福、MIT、伯克利;清华进TOP 20
  2. [BZOJ 3211]花神游历各国(并查集+树状数组)
  3. 零基础实战迁移学习VGG16解决图像分类问题
  4. php 静态方法继承,php 5.2中的类继承:重写扩展类中的静态变量?
  5. 百练OJ:4151:电影节
  6. 计算机视觉:基于眼疾分类数据集iChallenge-PM图像分类经典模型剖析(LeNet,AlexNet,VGG,GoogLeNet,ResNet)
  7. 第一个WebService案例
  8. $2019$ 暑期刷题记录 $2$(基本算法专题)
  9. 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...
  10. 思科CCNA第二学期期末考试答案
  11. 简化版shell远程登录脚本
  12. Atitit 图像处理之理解卷积attilax总结
  13. launchpad乐器_一起认识 Launchpad 系列——中篇
  14. win7右键菜单管理_电脑右键新建不见了怎么办 电脑右键新建不见了解决方法【详解】...
  15. java逆波兰式求值_波兰式、逆波兰式与表达式求值
  16. H5 百度高德地图导航
  17. qnx 设备驱动开发_QNX简介
  18. 对话《财富》40U40|闪马智能创始人兼CEO彭垚:人口、变局与下一代智慧系统
  19. 【音视频处理】为什么MP3不是无损音乐?音频参数详解,码率、采样率、音频帧、位深度、声道、编码格式的关系
  20. transformer中QKV的通俗理解(渣男与备胎的故事)

热门文章

  1. IDEA配置优化,idea配置大全
  2. 解决更新包与已安装应用的签名不一致的问题
  3. 【详细整理机房布线工艺,布出更快更漂亮的网线!】
  4. 什么是Java / JVM中的-Xms和-Xms参数(已更新至Java 13)
  5. c语言的中打印出鸟图形,教你画出一只萌萌哒小鸟【PS教程】
  6. Linux 定时任务shell脚本定时移动服务器日志文件到指定目录下
  7. solrCloud配置
  8. pandas 聚合函数agg
  9. centOS:常用命令
  10. 日本人为什么不吃小龙虾!