浅析C++中的C++数组规则
大多数人对于C++数组的理解还是不够深刻的,如果想要对数组赋值,那么首先要向数组元素赋值终止null和其它字符值时,必须用单引号,所以在处理C++数组时一定要仔细。。
如果重载数组末尾,则无法知道哪个内存被改写了,使结果难以预料,甚至会导致程序或Windows崩溃。这类问题很难诊断,因为受影响的内存通常要在很久以后才访问,这时才发生崩溃(让你莫名其中之妙)。所以写入数组时一定要小心。
数组规则
◆数组是以0为基数。数组中的第一个元素为0,第二个元素为1,第三个元素为2,等等。
◆数组长度应为编译常量。编译器在编译时必须知道为数组分配多少内存空间。不能用变量指定数组长度。所以下列代码不合法,会导致编译错误: 小心不要重载数组末尾。
◆ 大数组从堆叠(heap)而不是堆栈(stack)中分配(详见稍后)。
◆ 从堆叠分配的数组可以用变量指定数组长度。
字符数组
奇怪的是,C++不支持字串变量(放置文本的变量),C++数组中的字串是用char数据类型的数组表示的。例如,可以将变量赋予char数组如下。这就在内存中分配18字节的内存空间用于存放字串。根据你的领悟能力。
也许你会发现该字串中只有17个字符。分配18个字节的原因是字串要以终止null结尾,C++数组在分配内存空间时把终止null算作一个字符。 新术语 终止null是个特殊字符,用|0表示,等于数值0。程序遇到字符数组中的0时,表示已经到字串末尾。为了说明这点,输入并运行下列控制台应用程序。
清单1.6Nulltest.cpp 1: #include <iostream.h> 2: #include <conio.h> 3: #pragma hdrstop 4: 5: int main(int argc,char **argv) 6: { 7:char str[]="This is a string."; 8.cout << str << end1; 9.str[7]= '\0'; 10. cout << str << end1 11. cout << end1 << "Press any key to continue..."; 12: getch(); 13: return 0; 14: }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20