黑马程序员——C语言数组
来源:互联网 发布:妹子自慰 知乎 编辑:程序博客网 时间:2024/05/02 22:27
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、数组的概念和定义
1. 数组就是用来存储一组数据的(只能存放一种类型的数据,比如int类型的数组、float类型的数组)
2. 定义格式:元素类型 数组名 [元素个数]
例如 : int ages [ 5 ]
3. 简单初始化:int ages[5]={ 2, 23, 45, 21, 19 } (大括号中的每个数称之为数组元素)
4. 元素有顺序之分,每个元素都有一个唯一的下标,从0开始(用ages[i]可以访问数组中的每个元素)
int ages[5]={ 2, 23, 45, 21, 19 } ages[0]={ 2 }, ages[1]={ 23 },.....................
5. 数组的初始化方式
int a[3] = {10, 9, 6};
int a[3] = {10,9};
int a[] = {11, 7, 6};
int a[4] = {[1]=11,[0] = 7};
int count=5 ; int [count ]={11, 7, 6};
6. 错误写法
int a[];
int[4] a;
int a[b];
a = {10, 11};
a[4] = {10,9,8,5};
int a[count] = {11, 7, 6};
*结 论:(1)只能在定义数组的同时进行初始化
(2)数组元素的数量[ ]只能是常量值
(3)如果在定义数组的同时进行初始化,数组元素个数必须是常量,或者不写
7. 数组的遍历 (按顺序查看数组的每一个元素)
int ages[5]={ 2, 23, 45, 21, 19 } ;
for (int i=0; i<5; i++)
{
printf("ages[%d]=%d\n",i,ages[i]);
}
8. 计算数组元素的个数
int ages[ ]={ 2, 23, 45, 21, 19 } ;
int count=sizeof(ages)/ sizeof(int);
二、数组的内存方式
1. 存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)
2. 数组的地址就是首元素的地址
3. 数组名就代表数组的地址
*注意点:(1)数组作为函数参数,可以省略元素的个数
(2)数组作为函数参数,传递的是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组
(3)数组传递是地址传递(因为数组名就代表了数组的地址)
(4)数组作为函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下占8个字节
三、练习(设计一个函数找出一个整形数组中元素的最大值)
int maxOfArry(int a array[],int length)
{
int max=array[0]; // 定义一个变量存储最大值,默认最大值为首元素
for (int i=0; i<length; i++) //遍历所有元素找出最大值
{
if a[i]>max
{
max = a[i]; //如果当前元素大于max,就用当前元素覆盖max
}
}
return max;
}
int main()
{
int a[5]={3,5,9,10,3};
int max=maxOfArray(a,sizeof(a)/sizeof(int));
printf ("%d\n",max);
return 0;
}
四、二维数组
1.二维数组是一个特殊的一维数组,它的元素是一位数组
int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素
2. 二维数组的定义格式
int ages [2][3]={
{22,33,88},
{12,63,21},
}
3. 使用场合:五子棋、俄罗斯方块
- 黑马程序员——C语言数组
- 黑马程序员——C语言数组
- 黑马程序员--C语言——数组
- 黑马程序员——C语言---数组
- 黑马程序员————C语言数组
- 黑马程序员——C语言——数组
- 黑马程序员——C语言——数组
- 黑马程序员——C语言—数组、指针
- 黑马程序员———C语言 一维数组
- 黑马程序员——C语言基础06—数组
- 黑马程序员—C语言—数组 && 字符串
- 黑马程序员——C语言基础--数组和字符串
- 黑马程序员—C语言笔记—数组和字符串
- 黑马程序员——C语言基础---数组、指针
- 黑马程序员——c语言基础:数组和字符串
- 黑马程序员——c语言基础:一维数组
- 黑马程序员——c语言基础:二维数组
- 黑马程序员——C语言笔记之数组
- 图的基本操作(基于邻接矩阵):图的构造,深搜(DFS),广搜(BFS)
- 汇编实验(一)
- 微软Lync正式更名Skype for Business 新版拟在2015年发布
- iOS 8系统14个你不知道的隐藏功能
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- 黑马程序员——C语言数组
- windows获取范围内可用WiFi信息
- 【2014年12月2日】【每日一问】在Linux中,符号链接(软链接)和硬链接有什么区别?
- 重新认识串口,使用交叉还是直连串口线
- github本地上传命令
- 5 THINGS CAUSING DEVELOPERS TO LOSE MOTIVATION AT WORK
- webservice根据handler处理header信息。
- s5pv210 jpeg硬件编码
- convert cl file to headers