for循环

函数入门

函数,在数学上的定义:对于输入的若干值,返回唯一的值。 第二课 - 图1 调用它的方法:int x = myadd(5, 8);

函数定义时的参数,称为:形式参数,简称:形参 调用函数时,传给它的参数,称为:实际参数,简称:实参

一般的情况下,形参的改变不影响实参。

形参是局部变量,在栈中分配

形参的寿命小于实参

函数的用处

函数是重要的==抽象==手段

1.人类解决复杂问题的法宝:大问题分解为小问题 这就是著名的自顶向下的设计

2.避免重复做某件事

3.消除 if..else 的嵌套,增加可读性 【三数取中】的例子,再次函数版本的实现:三个数居中 = 两两最大值的最小值

4.消除 循环嵌套,增加可读性 【九九乘法表】的例子,再次函数版实现

返回值

返回值可以没有, 类型写 void有返回值的时候,调用方也可以当作没有来用。

指针入门

指针就是存放其它变量地址的小盒子 所说的地址,是虚拟内存的地址,本质上就是整数,默认以十六进制表示 第二课 - 图2

指针的定义

类型 * 指针名 初始化: 指针 = &某变量

通过指针,访问被指向的变量

可以读取myxx = *p; 也可以写入*p = ... 要十分谨慎 通过指针写入是危险的,这是c++强大的原因,也是bug发源地

可以在参数中使用指针

形参是指针类型时,可以改变实参的值 我们可以利用这个特性,间接地实现多个返回值。

可以返回指针类型

避免返回局部变量的地址

  1. ```int* f(){
  2. int a = 100;
  3. //....
  4. return &a;
  5. }
  6. int main(){
  7. int* p = f();
  8. ....
  9. }

当我们拿到返回值的时候,变量 a 已经被释放了。 我们的指针指向了已经无效的内存,产生了:悬挂指针 这是很常见的bug之源