黑马程序员——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; }
相关文章推荐
- 黑马程序员——C语言中的指针
- C++ vector的用法小结
- 分清定义性声明和引用性声明
- C++中继承覆写导致基类的成员不可见
- C++基础---结构体(struct)
- C语言char和int的转换
- 初学算法 - 求凸包的Garham's Scan算法的C++实现
- 2015-10-12 OC语言中的多态 以及面向对象方法和继承的相关问题总结
- 丹尼斯·里奇:让乔布斯立足肩上的 C 语言之父
- 1082. Read Number in Chinese (25)
- 为何使用dynamic_cast转换类指针时,需要虚函数?
- C语言中的宏定义
- c++ primer第五版(中文)习题答案 第十章第三节第四小节-参数绑定
- STL之红黑树实现
- C++学习笔记17——函数重载
- STL之heap实现
- 黑马程序员——C语言学习笔记03 变量在内存中存储的细节、位运算
- 项目35.5 在北京买房
- 解决VC++ 6.0打开文件崩溃
- C++中的多态和派生继承