C、C++数组初始化,数组赋值
原文发于: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++数组初始化,数组赋值相关推荐
- java数组初始化赋值_数组初始化与赋值
数组初始化与赋值 2009-09-17 如果有几个object,他们的类型是相同的.创建它们的时候,它们可能在堆里的各个散落位置产生,这样的话,存取效率就会不高.既然它们的类型是相同的,那么我们可以用 ...
- java初始化该字符串值_java字符串数组初始化和赋值
//一维数组 String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组 String[] str = new String[]{" ...
- Java数组及二维数组初始化与赋值方法总结
一维数组初始化 1.定义数组直接赋值 int a[]= {1,2,3,4,5}; 2.用new在数组中创建元素 int a[]=new int[]{1,2,3}; 注意:后面的[]不要忘了 3.创建指 ...
- Java字符串数组初始化和赋值
原文地址:http://blog.csdn.net/bobobe/article/details/45157529 //一维数组 String[] str = new String[5]; //创建一 ...
- python多维数组初始化后赋值的问题
当使用下述代码进行数组初始化时 >>>a = [[0]*3]*3 [[0,0,0],[0,0,0],[0,0,0]] >>>a[1][1] = 1 [[0,1,0] ...
- java数组初始化0_Java自学-数组 初始化数组
Java 如何初始化数组 步骤 1 : 分配空间与赋值分步进行 public class HelloWorld { public static void main(String[] args) { i ...
- [小错误][JAVA][数组初始化]数组静态初始化和动态初始化不能混用
错误 return new int[1]{shorter*k}; error: array creation with both dimension expression and initializa ...
- C语言中的结构体,结构体中数组初始化与赋值
最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...
- Java一维数组初始化与赋值
public class ArrayDemo01 {public static void main(String[] args) {//静态初始化:创建 + 赋值int[] a = {1,2,3,4, ...
- c语言数组初始化未赋值则默认是任意还是0?
https://bbs.csdn.net/topics/310142759 一般来说 全局变量.静态变量处于数据区,默认初始化为0 (如果指定初始值,则为指定的值) 而局部变量处于堆栈区,其数值是随机 ...
最新文章
- ICML 2020论文贡献榜排名出炉:Google单挑斯坦福、MIT、伯克利;清华进TOP 20
- [BZOJ 3211]花神游历各国(并查集+树状数组)
- 零基础实战迁移学习VGG16解决图像分类问题
- php 静态方法继承,php 5.2中的类继承:重写扩展类中的静态变量?
- 百练OJ:4151:电影节
- 计算机视觉:基于眼疾分类数据集iChallenge-PM图像分类经典模型剖析(LeNet,AlexNet,VGG,GoogLeNet,ResNet)
- 第一个WebService案例
- $2019$ 暑期刷题记录 $2$(基本算法专题)
- 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...
- 思科CCNA第二学期期末考试答案
- 简化版shell远程登录脚本
- Atitit 图像处理之理解卷积attilax总结
- launchpad乐器_一起认识 Launchpad 系列——中篇
- win7右键菜单管理_电脑右键新建不见了怎么办 电脑右键新建不见了解决方法【详解】...
- java逆波兰式求值_波兰式、逆波兰式与表达式求值
- H5 百度高德地图导航
- qnx 设备驱动开发_QNX简介
- 对话《财富》40U40|闪马智能创始人兼CEO彭垚:人口、变局与下一代智慧系统
- 【音视频处理】为什么MP3不是无损音乐?音频参数详解,码率、采样率、音频帧、位深度、声道、编码格式的关系
- transformer中QKV的通俗理解(渣男与备胎的故事)