第五章 2 数组

Posted xingkongcanghai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五章 2 数组相关的知识,希望对你有一定的参考价值。

技术图片
技术图片
数组在内存中连续排列

1 数组是可以在内存中连续存储多个元素的结构,数组中的

所有元素必须属于相同的数据类型

? 一维数组声明的基本格式为:
? 类型 数组名[数组元素个数];
? 比如,声明语句:
? double sz[6];

告诉编译器3条信息:数组名是sz,存放的元素是double型,数组存放的元素个数为6,这样,便可以对数组及数组元素进行读写访问。
要防止下标越界的错误发生,对上面声明的数组sz来说,有效的下标是0到5,在程序中如果出现了sz[6],编译器有时并不会报错,但这可能引起程序的崩溃。

sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
sizeof(类型说明符,数组名或表达式);
  或sizeof 变量名
因此sizeof(a);则求得 结果为20 。因为一个元素占4个字节,数组a有5个元素,则占有5*4=20个字节
sizeof(int) ;//求得int 类型所占的字节数
printf(" %x",a); //打印出数组a的地址
技术图片
分别打印出数组a中的元素的值和地址:
技术图片
运行结果:
技术图片

? * 一维数组也称向量,用以组织具有一维顺序关系的一组同类型数据,在使用数组前,必须先声明数组,编译器根据声明语句为其分配内存,这样数组才有意义。
? * 要在内存中开辟一块连续内存给数组用,需要考虑以下问题,一是在哪里开辟,而是开辟多大的地方,C语言中,这都是由编译器自动完成的 ,编程人员说要做的是“提要求”,即所开辟的数组应能盛放多少个元素,每个元素是什么类型,另外,编程人员还要指定数组名。

2 定义一个数组a,有10个元素

如果越界访问,程序则会崩溃

技术图片

3 数组定义的形式:

size必须是常量表达式
技术图片
(1)通过 #define N 20 ,下面的代码是合法的。
技术图片
如果 printf("%d",&N); //编译器放在常量区,没有地址,无从修改
(2)通过const int num=10; 然后定义数组b[num] 这样的
代码是不合法的
技术图片
num 在内存中有实体,是可变动数。

4、数组初始化,系统在栈区自动分配一段连续的内存给数组元素

技术图片
不足的数填充0.
技术图片

5、数组的其他初始化情况:

技术图片




























以上是关于第五章 2 数组的主要内容,如果未能解决你的问题,请参考以下文章

第五章 2 数组

数据结构:第五章学习小结

数据结构:第五章学习小结

JAVA-初步认识-第五章-数组-第二种定义格式

第五章JavaScript

第五章