C++程序设计函数小结
/*
C++程序设计第六章函数小结笔记
1.函数
定义:函数名,参数,返回值类型和主体
函数必须在main函数之前
调用栈保存函数各参量的活动记录
可以用return来在非法值时调用函数终结
不正常的情况下可以使用exit(int),在头文件<cstdlib>里
2.以传值方式传递参数
3.模块化代码
4.函数的重载:
使用相同的名称,但是不同的参数
注意模糊调用的问题
5.函数原型:
就是一个没有函数实现(函数体)的的单纯的函数声明;在函数原型中可以不必些参数名称,只写参数类型就可
6.缺省参数:
类似于void printArea(double radis = 1),给参数赋予默认值
7.内联函数:
在函数最前面加上inline,可以避免函数调用的开销,对于短函数建议使用,对于多次调用的长函数不建议使用;同时编译器可能会忽略inline关键字
8.局部,全局和静态局部变量:
局部:函数内,无缺省值
全局:函数外,缺省值为0
符合就近原则
应避免使用全局变量
避免在嵌套的for循环里生命相同的变量
局部变量在函数调用后会被销毁
静态局部变量会一直驻留在内存中,声明关键字为static
9.以引用方式传递参数
值传递有一些局限性,参数的值是不会改变的
引用变量:可以被作用函数参数中来引用原变量;变量名前或是数据类型后加(&)
10.常量引用参数
参数在函数中不能被改变,就可以使用这个:参数形式为 const type& name
11.函数抽象和逐步取精:
图表和分治;
自顶向下设计或自底向上实现
实例;对给定年月输出日历
*/
//#pragma comment(lib,"winsock.lib")
#include <iostream>
#include <string>
#include <iomanip>
#include <windows.h>
using namespace std;
void printMonth(int year,int month);
void printMonthTitle(int month,int year);
void printMonthBody(int year, int month);
int getStartDay(int totalDay);
int getTotalDay(int year, int month);
int getMonthDay(int year, int month);
bool isLeapYear(int year);
//设定一个初始值,可以判断1800年以后的日历
const int STARTDAY1800 = 3;
int main() {
cout << "请输入你想的到日历的年" << endl;
int year;
cin >> year;
cout << "请输入你想的到日历的月" << endl;
int month;
cin >> month;
cout << "你所想要查看的日历是:\n" << endl;
printMonth(year,month);
cout << endl;
int ex