C++ code:数组初始化
具有初始化的数组定义,其元素个数可以省略,即方括号中的表达式可以省略。这时候,最后确定的元素个数取决于初始化值的个数。例如:
#include<iostream>
using namespace std;
int main()
{
int a[] = {,,,,};
for (int i = ; i < sizeof(a) / sizeof(a[]); ++i)
cout << a[i] << " ";
cout << "\n";
cin.get();
return ;
}
运行结果:

程序中,用了sizeof(a),即a数组的字节数。还有sizeof(a[0]),即第一个元素所占空间的字节数,因为是整形数组,所以相当于sizeof(int),在32位编译器中整形数程度长度为4。a数组有若干个元素,每个元素有sizeof(a[0])个字节,所以两者相除就是元素个数。这样表示的用意在于可维护性。(因为数组元素个数随着编程需要可能也会变化。在稍大一点的编程中,输入过程与处理过程往往分离,即中间相隔许多语句,所以,并不能一下子直观得看到数组元素个数的值,而根据数组名和其元素的信息,获取元素个数的方式,就带有很好的通用性。for循环的结构描述就无须跟着数组的初始化变动而改动了)
数组默认值:
对于没有初始化的数组,分两种情况:一种是全局数组和静态数组,也就是在函数外部定义的,或者加上static修饰的数组定义,其元素总是全被清零:另一种是局部数组,就是在函数内部定义的数组,它们的值是不确定的。例如:
#include<iostream>
using namespace std; int array1[] = { , , };
int array2[]; int main()
{
int array3[] = {};
int array4[]; cout << "array1: ";
for (int i = ; i < ; ++i)
cout << array1[i] << " "; cout << "\narray2: ";
for (int i = ; i < ; ++i)
cout << array2[i] << " "; cout << "\narray3: ";
for (int i = ; i < ; ++i)
cout << array3[i] << " "; cout << "\narray4: ";
for (int i = ; i < ; ++i)
cout << array4[i] << " "; cout << "\n"; cin.get();
return ;
}

数组的这种初始化规定方式源于程序运行的空间布局,函数中的局部数组是随着函数调用而创立的,而函数外部的数组是在整个程序运行中起作用的,驻于全局数据区,在运行起始时为0。
二维数组:
使用二维数组,可以按行、列下标访问对应元素。例如:
#include<iostream>
using namespace std; int main()
{
int array1[][] = {,,,,};
int array2[][] = { { , }, {} }; cout << "array1: ";
for (int i = ; i < ; ++i)
for (int j = ; j < ; ++j)
cout << array1[i][j] << ", "; cout << "\narray2: ";
for (int i = ; i < ; ++i)
for (int j = ; j < ; ++j)
cout << array2[i][j] << ", "; cout << "\n"; cin.get();
return ;
}

C++ code:数组初始化的更多相关文章
- Linux Kernel代码艺术——数组初始化
前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑: const sys_call_ptr_t sys_call_table[__NR_syscall_max+ ...
- Linux Kernel代码艺术——数组初始化【转】
转自:http://www.cnblogs.com/hazir/p/array_initialization.html 前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点 ...
- 从C过渡到C++——换一个视角深入数组[初始化](1)
从C过渡到C++--换一个视角深入数组[初始化](1) 目录 从C过渡到C++--换一个视角深入数组[初始化](1) 数组的初始化 从C入手 作用域 代码块作用域 文件作用域 原型作用域 函数作用域 ...
- 用vector容器代替数组 ——使用数组初始化vector对象
在C++中,我们不能用数组直接初始化另一数组,而只能创建新的数组,然后显式的把原数组的元素逐个复制给新的数组. 按照C语言中的做法: const size_t arry_size=6; int int ...
- java数组初始化
java数组初始化 //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi&qu ...
- java 数组初始化
一维数组 1) int[] a; //声明,没有初始化 2) int[] a=new int[5]; //初始化为默认值,int型为0 3) int[] a={1,2,3,4,5} ...
- [转]Java数组初始化详解
一维数组1) int[] a; //声明,没有初始化 2) int[] a=new int[5]; //初始化为默认值,int型为0 3) int[] a={1,2,3,4,5}; ...
- C++中数组初始化
#include<iostream>using std::cout;using std::endl;int arr1[5];int arr2[5] = {1,3,5};int main() ...
- 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail
面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...
- No1_3.数组初始化_Java学习笔记
public class HelloArray { public static void main(String[] args) { // TODO Auto-generated method stu ...
随机推荐
- 使用LTP套件对Linux系统进行压力测试
使用LTP套件对Linux系统进行压力测试 https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=6764 https ...
- 内置窗口 pyqt5
1.使用Qt Designer设计三个窗口 注意:在主窗口中需要添加一个girdLayout 2.创建**.py from PyQt5.QtWidgets import QMainWindow, QA ...
- JavaScript中对象分类
js的对象有三大类,内部对象(本地对象和内置对象).宿主对象和自定义对象 一.内部对象 1.本地对象,ECMAScript提供的需要实例化(new)才能使用的对象: Object.Function.A ...
- sql 各种常用函数
1.stuff函数 替换制定字符串 stuff(,,'许嵩') 结果: 最帅的许嵩最帅的我 2.replace函数 select replace('蜀云泉真是帅啊','蜀云泉','许嵩') 结果: 许 ...
- JS文本框获取焦点
所谓焦点,就是鼠标移上文本框的时候那个一闪一闪的光标.
- POJ - 2187 Beauty Contest(最远点对)
http://poj.org/problem?id=2187 题意 给n个坐标,求最远点对的距离平方值. 分析 模板题,旋转卡壳求求两点间距离平方的最大值. #include<iostream& ...
- [C++]C++与C头文件辨析(比较)
C++/C头文件辨析 C++标准库 C标准库 C++标准模板库 ios vector iomanip deque sstream list fstream map set ...
- luogu P1084 疫情控制
传送门 首先,所有军队又要尽量往上走,这样才能尽可能的封锁更多的到叶子的路径 而随着时间的增加,能封锁的路径也就越来越多,所以可以二分最终的时间 然后对于每个时间,就让能走到根的军队走到根,记录到根上 ...
- 在window系统下安装Sass
1.Ruby下载 因为Sass依赖于Ruby环境,所以应先在window系统下安装Ruby,Ruby安装包下载链接:http://rubyinstaller.org/downloads/ 2.Ruby ...
- php 无法正确获取系统当前时间的解决办法
今天捣鼓一个统计系统时让用户自动录入用户信息,后台使用PHP的date()函数来获取系统时间,发现时间跟当前时间对不上,后来是因为PHP默认的时区是UTC,应该将其时区设置为北京时间. 方法一:修改p ...