for循环
函数入门
函数,在数学上的定义:对于输入的若干值,返回唯一的值。
调用它的方法:int x = myadd(5, 8);
函数定义时的参数,称为:形式参数
,简称:形参
调用函数时,传给它的参数,称为:实际参数
,简称:实参
一般的情况下,形参的改变不影响实参。
形参是局部变量,在栈中分配
形参的寿命小于实参
函数的用处
函数是重要的==抽象==手段
1.人类解决复杂问题的法宝:大问题
分解为小问题
这就是著名的自顶向下的设计
2.避免重复做某件事
3.消除 if..else 的嵌套,增加可读性
【三数取中】的例子,再次函数版本的实现:三个数居中 = 两两最大值的最小值
4.消除 循环嵌套,增加可读性
【九九乘法表】的例子,再次函数版实现
返回值
返回值可以没有, 类型写 void
有返回值的时候,调用方也可以当作没有来用。
指针入门
指针就是存放其它变量地址的小盒子 所说的地址,是虚拟内存的地址,本质上就是整数,默认以十六进制表示
指针的定义
类型 * 指针名
初始化: 指针 = &某变量
通过指针,访问被指向的变量
可以读取myxx = *p;
也可以写入*p = ...
要十分谨慎 通过指针写入是危险的,这是c++强大的原因,也是bug发源地
可以在参数中使用指针
形参是指针类型时,可以改变实参的值 我们可以利用这个特性,间接地实现多个返回值。
可以返回指针类型
避免返回局部变量的地址
```int* f(){
int a = 100;
//....
return &a;
}
int main(){
int* p = f();
....
}
当我们拿到返回值的时候,变量 a 已经被释放了。 我们的指针指向了已经无效的内存,产生了:悬挂指针 这是很常见的bug之源