C++ Primer Plus学习笔记之三
每一块写了一个详细阐释的demo,具体使用方法以及注意事项在代码里都有备注
第七章函数--C++的模块编程,总计分为以下几块--
函数参数:介绍了函数的生命规则以及定义
数组函数:数组作为变量时的使用方法
指针和const:灵活运用指针和const
函数和二维数组:二维数组作为变量时声明以及定义的使用方法
递归:调用自身函数的使用范例
函数指针:函数的指针作为变量在某些项目中会减少工作量
代码下载地址:http://download.csdn.net/detail/zmdsjtu/9619851
#include
#include
#include
using namespace std;//如果不加这个string是无法直接用的
////////////////////C++ Primer Plus学习笔记(三)///////////////////////////
//-------------------------2016-9-2------------------------------------------
//----main()函数里备注的每一行代表一个功能函数以及知识点,可以去掉看看效果----
//函数调用--略,以下每个都设计到函数的声明以及调用
void 函数参数(int,string);//未必要把变量写出来,因为只是一个占位符
void 数组函数(int ar[], int size);//注意不要用void 数组函数(int ar[size])这种,因为这里是把数组当作指针的!!
void 指针和const();
int 函数和二维数组(int (*ar2)[3],int size);
//函数和结构把结构看成一个变量即可,类似
//函数和string依旧类似
void 递归(int);//函数里调用自己
//-----------------------注意看指针函数的定义以及用法-----------
void 函数指针(int line,double(*pf)(int));//传递函数的地址,某种程度上把函数作为变量
double 帅比1的效率(int 行数);
double 帅比2的效率(int 行数);
//------------------------------------------------
int main() {
//函数参数(9, "演示函数传参");//cout九次这个string
//int 数组[5]; 数组函数(数组, 5);//演示了数组作为参数如何书写
//指针和const();
//int data[2][3] = { {1,2,3},{4,5,6} }; cout << "元素和为:" << 函数和二维数组(data, 2) << endl;
//递归(4);
//cout << "帅比1写"; 函数指针(100, 帅比1的效率); cout << "刷比2写"; 函数指针(100, 帅比2的效率);
system("pause");
}
void 函数参数(int i, string 帅比) {
for (int k = 0; k < i; k++) {
cout << 帅比 << endl;
}
}
void 数组函数(int ar[], int size) {
for (int i = 0; i < size; i++) {
ar[i] = i*i;
cout << "第" << i+1 << "个参数的值为:" << ar[i] << endl;
}
}
void 指针和const() {
int 数字 = 233;
const int *指针 = &数字;//const类型的指针指向一个int数字;
cout << "不能修改const类型指针,但指向的非const变量可以修改。"<<endl;
int 数字2 = 23333;
int *二次指针_1 = &数字2;//可以用这个指针修改数字2 的值
const int *二次指针_2 = 二次指针_1;//二次指针..感觉意义也不大
cout << "有事儿没事儿还是尽量避免多个指针相互指来指去吧,总会粗事儿的。。。" << endl;
cout << "尽量使用const是好习惯!!" << endl;
int 数字3 = 2333;
const int *萌萌的指针 = &数字3;
int *const 不萌的指针 = &数字3;
*不萌的指针 += 1;//看吧,不报错。。。
cout << "萌萌的指针不能修改数字3 的值,不萌的指针不能指向其他地址了,但可修改。。。" << endl;
}
int 函数和二维数组(int ar2[][3], int size) {
//计算所有元素之和演示二维数组函数使用方法,和定义的地方对比可以看出两种写法
int total = 0;
for (int i = 0; i < size; i++) {
for (int r = 0; r < 3; r++)
total += ar2[i][r];
}
return total;
}
void 递归(int n) {
cout << "帅不过" << n << "次..." << endl;
Sleep(500);
if (n > 0) 递归(n - 1);
cout << "出来帅总归要还的...递归到这里只能结束了" << endl;
}
void 函数指针(int line, double(*pf)(int)) {
cout << line << "行代码会耗费" << (*pf)(line) << "小时" << endl;
}
double 帅比1的效率(int 行数) { return 0.05*行数; }
double 帅比2的效率(int 行数) { return 0 / 03 * 行数 + 0.0004*行数*行数; }
最后祝大家编程愉快:)