您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记(三)--函数参数,数组函数,指针和const,二维数组函数,递归,函数指针

2016-09-02 11:29 961 查看
C++ Primer Plus学习笔记之三

每一块写了一个详细阐释的demo,具体使用方法以及注意事项在代码里都有备注

第七章函数--C++的模块编程,总计分为以下几块--

函数参数:介绍了函数的生命规则以及定义

数组函数:数组作为变量时的使用方法

指针和const:灵活运用指针和const

函数和二维数组:二维数组作为变量时声明以及定义的使用方法

递归:调用自身函数的使用范例

函数指针:函数的指针作为变量在某些项目中会减少工作量

代码下载地址:http://download.csdn.net/detail/zmdsjtu/9619851

#include<iostream>

#include<string>

#include <windows.h>

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*行数*行数; }



最后祝大家编程愉快:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息