Coursera 程序设计与算法专题-2 C程序进阶

c程序进阶

1 函数(复习)

类似于y = f(x),给函数输入,返回输出。

实参是实际输入参数,形参:函数定义参数

执行

开辟空间给主函数,调用函数时开辟新空间,得到返回值后释放函数内存,接着执行主函数程序。主程序执行结束,释放主函数空间。

参数传递

传递变量到函数不改变值;
传数组名到函数会改变值。因为传递的实际是数组的地址,能对数组直接操作。

2 递归

重复调用自身。
程序简明。

递归实现:
–目标解;
–找到n与n-1之间的关系;
–子问题求解;

3 指针(复习)

内存空间有地址
变量三要素:
变量地址 + 变量值 + 变量名
地址运算符“&”

变量地址的作用:利用地资源址访问资源。
通过变量的地址操作变量:利用指针运算符*实现。

1
*&c 等价于 c

指针变量

1
2
3
int icount = 18;
int *iptr = &icount;
*iptr = 58;

icount = 58
iptr = 0028FB10
&icount =0028FB10
&iptr = 58
&iptr = 0028FB04

指针与数组

指针与字符串

结构体-struct

表示普遍存在的变量集合。

结构体变量

将一堆变量写到一个函数中,方便对象调用。

结构体数组-链表

动态申请内存空间。

面向对象入门