------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
第一讲 数组
一、数组的基本概念
一个int类型的变量能保存一个人的年龄,如果想保存整个班的年龄呢?
1. 什么是数组
数组,从字面上看,就是一组数据的意思,没错,数组就是用来存储一组数据的
2. 数组的特点
- 只能存放一种类型的数据,比如int类型的数组、float类型的数组
- 里面存放的数据称为“元素”
二、数组的定义
1. 定义
- 声明数组的类型
- 声明数组的元素个数(需要多少存储空间)
2. 格式
元素类型数组名[元素个数];
1 int ages[3]; //int 是数组的类型 ages是数组名 3 是数组元素的个数
3.简单使用
- 简单初始化: int ages[5] = {19, 19, 20, 21, 25};
- 元素有顺序之分,每个元素都有一个唯一的下标(索引),从0开始
- 数组元素的访问:a[i]
4.初始化
1)初始化方式
1 int a[3] = {10, 9, 6}; //数组一般的初始化方式 2 3 int a[3] = {10,9}; // 没有赋值的数组元素默认为0 4 5 int a[] = {11, 7, 6}; // 数组初始化的时候可以省略 元素个数 6 7 int a[4] = {[1]=11,[0] = 7}; // 利用索引给数组初始化也是可以的
2)初始化注意点
1 /* 这种写法是错误的 2 int ages[5]; 3 ages = {10, 11, 12, 14}; //一般在定义数组的同时进行初始化 4 */ 5 6 //下面这种写法也是错误的 7 int ages[count] = {10, 11, 12}; 8 //如果想再定义数组的同事进行初始化,数组元素个数必须是常量,或者不写 9 10 //这种方式是正确的 11 int count = 5; 12 int ages[count]; 13 ages[0] = 10; 14 ages[1] = 11; 15 ages[2] = 18;
5.数组的内存存储分析
- 数组存储空间的大小与长度有关和数组实际元素个数无关
- 存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的,与基本数据类型变量高位到低位的存储相反)
- 数组名就是数组首元素的地址,也是数组的地址
6.其他使用
1) 数组元素和数组作为函数参数实例
1 void change(int array[])// 数组作为函数参数,可以省略元素个数 2 { 3 //printf("array==%p ", array); 4 5 array[0] = 100; 6 } 7 8 void change2(int n) 9 { 10 n = 100; 11 } 12 13 int main() 14 { 15 int ages[6] = {10, 11, 10, 11, 10, 11}; 16 17 //printf("ages==%p ", ages); 输出结果为100 18 // 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组 19 20 change(ages); 21 22 //change2(ages[0]); 数组元素作为参数 23 24 printf("%d ", ages[0]); //输出结果为 10 25 return 0; 26 }
2) 数组作为参数所占用内存空间(sizeof)与数组元素的遍历
1 int maxOfArray(int array[], int length) 2 { 3 // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 4 5 //int size = sizeof(array); 6 //printf("array=%d ", size); 输出结果为 8 7 8 9 // 1.定义一个变量存储最大值(默认就是首元素) 10 int max = array[0]; 11 12 // 2.遍历所有元素,找出最大值 13 for (int i = 1; i<length; i++) 14 { 15 // 如果当前元素大于max,就用当前元素覆盖max 16 if (array[i] > max) 17 { 18 max = array[i]; 19 } 20 } 21 22 return max; 23 } 24 25 int main() 26 { 27 int ages[] = {11, 90, 67, 150, 78, 60, 70, 89, 100}; 28 29 //int size = sizeof(ages); 30 31 //printf("ages=%d ", size); 32 int max = maxOfArray(ages, sizeof(ages)/sizeof(int)); 33 34 printf("%d ", max); // 结果为 150 35 return 0; 36 }
第二讲 字符串
1.什么是字符串
- 简单的字符串”itcast”
- 一个’i’是一个字符
- 很多个字符组合在一起就是字符串了
2.字符串的初始化
1 //字符串一般以 结尾 下面 都是字符串 2 char name[8] = "it"; //"it" 其实由'i','t',' '组成 3 char name2[8] = {'i', 't', '