8. 数组
- 数组是放在一段连续的内存空间内;
- 数组内的每一个元素都是相同类型;
- 如果不告诉C++有多少个元素,是不合法的。
8.1 一维数组
例如:string name[] = { “张三”,“李四”,“王五” };
1.Sizeof(数组名),整个数组占用多少字节
Sizeof(arr[0]),数组的元素占用多少字节;
相除之后可以得到元素个数。
2.数组名代表首地址,是一个地址,arr和&arr[0]是一样的意思。
第一个元素和第二个元素相差四个字节。
代码运行效果如下:
8.2 冒泡排序法
代码以及运行结果如下:
int arr[] = { 3,2,1,2,2,7,8,9,6,0 };
int start = 0, end = sizeof(arr) / sizeof(arr[0]) - 1, temp=0;
for (int i = 0; i <= end; i++)
cout << arr[i] << " ";
cout << endl;
for (int i = 0; i < end; i++)
{
for (int j = 0; j < end - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i <= end; i++)
cout << arr[i] << " ";
cout << endl;
8.3 二维数组
定义的时候可以省去列数,但是不可以省去行数。
二维数组名称的用途:
数组名字,以及数组行名都是代表地址,只有当两个下表全都有的时候,才代表某个元素具体值。
代码运行结果如下:
9. 函数
9.1 函数的定义
如果一个函数不需要返回值,可以用void类型。
9.2 函数调用
如下:
9.3 值传递
形参和实参都有各自的内存空间,
实参只是将自己的值传给形参,当处理形参时,并不会改变实参的值。
原理如下:
9.4 函数的常见样式
9.5 函数的声明
9.6 函数的分文件编写
-
添加头文件
-
添加cpp文件
这里的cpp文件添加的头文件是用的双引号,说明这个头文件使我们自己创建的。
3. 添加声明:
add.h中并没有ifndefine。因为头文件多次编译并没有报错,只是影响了编译速度。
- 使用函数
当我们使用函数时,只需要包含相应的头文件即可