您的位置:首页 > 编程语言 > C语言/C++

黑马程序员——C语言中的数组

2015-10-12 07:15 363 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一、数组的基本概念

1.一个int行变量或者一个float变量能保存一个人的分数,如果要保存一个班级的分数,那就远远不够。

因此,我们要用到数组。

2.数组就是用来存放一组数据的

3.数组只能存放一种类型的数据,不能同时存放int型数据和float型数据或者其它两种不同的数据类型

4.数组内部存放的数据称为元素

二、定义数组

1.格式

数据类型数组名[];

int array[4];

2.初始化数组

初始化数组的几种方式
int array1[4] = {1,2,3}
int array2[4] = {1,2,3,4};
int array3[] = {1,2,3,4};


3.数组内存分析

1)内存的分配是从高地址进行的,但是一个数组的内部元素是从低到高进行的

2)数组名的作用,用来查看元素地址
char c[5] = {'a','A','D','e','f'};


4.数组的使用

1)数组与函数参数

2)数组元素作为函数参数

3)数组作为函数参数(sizeof注意)

 题目:数组作为函数参数,输出一个数组
#include <stdio.h>

void changeArray(int array[])
{
array[0] = 1;
array[1] = 2;
}

void changeNumber(int p)
{
p = 10;
}

int main()
{
int ages[] = {5,4,3,2,1};
int a = 99;
int counts = sizeof(ages)/sizeof(int);

changeArray(ages);
changeNumber(a);

for (int i=0; i<counts; i++)
{
printf("ages[%d]=%d\n",i,ages[i]);
}

printf("\na=%d\n",a);

return 0;
}


4)遍历数组元素

两种方式遍历(while循环和for循环)

题目:输出一个数组(for循环)
#include <stdio.h>

int main()
{
int ages[] = {10,11,12,13,14,15};
int counts = sizeof(ages)/sizeof(int);

for (int i=0; i<counts; i++)
{
printf("ages[%d]=%d\n",i,ages[i]);
}

return 0;
}


5)遍历元素值和元素地址

 *题目:设计一个函数,找出整型数组元素的最大值
#include <stdio.h>

int getMaxOfArray(int array[],int length)
{
int maxOfArray = array[0];

for (int i=1; i<length; i++)
{
if (maxOfArray<array[i])
{

4000
maxOfArray = array[i];
}
}

return maxOfArray;
}

int main()
{
int array[] = {1,2,5,4,3};
int length = sizeof(array)/sizeof(int);
int maxArray = getMaxOfArray(array,length);

printf("The max number of array is : %d\n",maxArray);
}


 *题目:数组寻址
#include<stdio.h>

int main()
{
char address1[5] = {'a','F','R','B','E'};
for (int i=0; i<5; i++)
{
printf("address1[%d]的地址为:%p\n",i,&address1[i]);
}

printf("\n");

int address2[] = {34,54,56,5};
int n = sizeof(address2)/sizeof(int);
for (int j=0; j<n; j++)
{
printf("address2[%d]的地址为:%p\n",j,&address2[j]);
}

return 0;
}


三、二维数组

1.二维数组的概念

一维数组能表示一个班人的成绩,二维数组则可以表示多个班级的成绩;

二维数组是一个特殊的一维数组:它的元素是一维数组;

例如int a[2][3] = {{1,2,3},{1,2,4}}可以看作由一维数组

a[0] = {1,2,3}和一维数组a[1]
= {1,2,3}组成。
3.初始化
int a[1][4] = {1,2,3,4,5,6};
int a[2][2] = {{1,2},{3,4}};
int a[][4] = {1,2,3,4};


 *题目:输出一个二维数组
#include<stdio.h>

int main()
{
int arr2[3][5]={
{1,2,3,4,5},
{4,5,76,7,68},
{45,6,7,87,1}
};

for (int i=0; i<3; i++)
{
for (int j=0; j<5; j++)
{
printf("%d-",arr2[i][j]);
}
printf("\n");
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: