码迷,mamicode.com
首页 > 编程语言 > 详细

《好学的C++ 第2版》 第3章 数组--都给我排好队

时间:2017-04-02 21:09:51      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:内存区域   运算   程序   c++   声明   double   字符串   全局变量   设置   

若变量声明时未进行初始化,那变量里保存的是垃圾数据。

可以用集合来初始化数组。

c++把全局变量默认初始化为0(数组的每一个元素都会被初始化为0),因为它是静态存储类;但局部变量若未初始化,存的就是垃圾数据。

也可以把某个函数的局部变量声明为静态的,这样该函数下次调用时还能拿到该局部变量的值(?)。不过它仍然是局部变量,对该函数的外部仍然是不可见的。

数组下标是距离数组起点的偏移量,第一个元素相对自己的偏移量为0,因而下标从0开始。(FORTRAN下标从1开始,减1操作会多耗费一点时间。C系语言更接近CPU操作。)

让调用整形变量的表达式执行浮点运算:

int a = 1;

double b = a;

double c = b / 9;

字符串常量:

char* wish = "no work tomorrow."

字符串数组:

char* lie[3] = {"you", "are", "sexy"};

 

越界访问或设置数组元素时,c/C++不会报错,后果是访问或覆盖了数组外部的一个小内存区域,这种漏洞很难调试。C/C++默认“码农知道自己在干啥”,因而程序才能更快更紧凑,带来的缺点就是码农自己要保证数组下标不越界。

二维数组:矩阵

int matrix[5][10]; //两重循环才能将其初始化

c++多维数组里最右侧下标变化最快,matrix[3][2]跟matrix[3][3]在内存里是紧挨着的。

 

《好学的C++ 第2版》 第3章 数组--都给我排好队

标签:内存区域   运算   程序   c++   声明   double   字符串   全局变量   设置   

原文地址:http://www.cnblogs.com/fFaXzz/p/6659753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!