1.函数
//函数定义 一定要放在使用的前面
// 形参
int add(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
// 1.先声明
int sub(int num1, int num2);
int a = 10;
int b = 20;
int s = add(a, b); //实参
cout<<"加法结果是:" << s << endl; //30
// 2. 后实现
int sub(int num1, int num2) {
int sum = num1 - num2;
return sum;
}
int s1 = sub(b, a);
cout << "减法结果是:" << s1 << endl; //10
--------------------------------------------------------------------------------------------------------------------
// 函数 分文件编写:
//1. 创建后缀名为 .h的 头文件
//2 . 在头文件中 写函数的 声明
//3. 创建 后缀名为.cpp 的 源文件
//4. 在源文件中 写函数 的定义
最后 在主页面,即源文件下 使用:
2.指针
以下是对 f1,f2,f3,f4 四个 方法的定义:
void f1(int a) { // s和a的内存地址是不一样的,所以修改a的值之后,s的值是不受影响的
a = 6;
}
void f2(int* a) { // 通过指针去接收 实参传递过来的 内存地址 ; s1 和 a 的 地址现在是一样的;
*a = 16;
}
void f3(int arr[]) {
for (int i = 0; i < 5; i++)
{
cout << arr[i] << endl;
}
arr[0] = 123;
}
void f4(int* arr) { // 数组的 首地址
for (int i = 0; i < 5; i++)
{
cout << *arr << endl;
arr++;
}
//arr[0] = 123;
}
通过指针,可以简化一些c++的编程任务的执行,还有一些比如:动态内存分配,没有指针 是无法执行的
// 每一个变量都有一个内存位置,每一个内存位置都定义了可使用&符访问的地址,他表示了 内存中的一个地址
值传递 和 地址传递:
3.构造体
构造体是一个单一名称下不同数据类型的变量的集合。他与类比较相似(结构体是一种值类型),
两者都保存着不同数据类型的数据集合
储存 某个人 的一些信息:姓名、身份证号、头发、鼻子、耳朵可以创建不同的变量name. id ,hair,nose,ear....
struct Person {
char name[50]; //名字
int age; // 年龄
float salary; // 工资
};