C++基础学习笔记:函数
//!时间:2017年9月9日(周六)夜 //!内容:C++函数基础 //!最后更改时间:10分钟之后,汗! #include <iostream> #include <string> #include <cassert> using namespace std;//偷懒 int funcOne(int);//函数原型声明,可以省略形参名 void swapOne(int i, int j); void swapTwo(int *i, int *j); void swapThree(int &i, int &j); void strTest(const char *str); void strTest(const char str[], int n); void strTest(const string str); template <typename T>//or:template <class T> void myswap(T &i, T &j); int main() { //1.函数的定义:声明、定义、调用 int numReturn = funcOne(1);//函数的调用
//2.函数指针与指针函数;略(见C++指针笔记)
//3.参数传递 int numOne = 1, numTwo = 2; swapOne(numOne, numTwo);//值传递,不改变实参 //swapTwo(&numOne, &numTwo);//指针传递,会改变 swapThree(numOne, numTwo);//引用传递,会改变 cout << numOne << "-" << numTwo << endl; //*返回与参数列表类似,注意不能返回局部变量的引用 //*参数限定为const可以避免对参数无意的修改 //字符数组、C风格字符串与string类型的参数:数组名是首地址 char cStr[10] = "A test!"; char *pStr = "B test!"; string sStr = "C test!"; strTest(cStr);//or:strTest(pStr); strTest(pStr, 7);//or:strTest(cStr, 7); strTest(sStr);
//4.函数重载:(见3.strTest)
//5.模板函数 //如3.中的swap函数是以整形的参数,而模板允许以任意类型来定义函数 int iOne = 1, iTwo = 2; float fOne = 1.1, fTwo = 2.2; myswap(iOne, iTwo);//实例为int myswap(fOne, fTwo);//实例为float cout << iOne << "--" << fOne << endl;
//6.内联函数:inline与函数定义放在一起 //inline对于编译器来说只是一个建议,编译器会自动进行优化。 //当inline中出现了递归,循环,或过多代码时,编译器自动无视inline声明,同样作为普通函数调用。
system("pause"); return 0; }//!main() end; //函数定义 //<返回类型><函数名>(<参数列表>){函数体} int funcOne(int i) { return i * 10; }
void strTest(const char *str) { if (str == nullptr) assert("null..."); while (*str) cout << *str++; } void strTest(const char str[],int n)//防止越界操作 { for (int i = 0; i < n; i++) cout << str[i]; } void strTest(const string str) { cout << str; }
void swapOne(int i, int j) { int temp = i; i = j; j = temp; } void swapTwo(int *i, int *j) { int temp = *i; *i = *j; *j = temp; } void swapThree(int &i, int &j) { int temp = i; i = j; j = temp; } template <typename T>//or:template <class T> void myswap(T &i, T &j) { T temp = i; i = j; j = temp; }
C++基础学习笔记:函数相关推荐
- Python3 基础学习笔记 C07【函数】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- guido正式发布python年份_Python 基础学习笔记.docx
Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...
- Python3 基础学习笔记 C09【文件和异常】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C08 【类】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C06【用户输入和 while 循环】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C05【字典】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C03【操作列表】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C02【列表】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python3 基础学习笔记 C01【变量和简单数据类型】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
最新文章
- 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
- 弹出提示对话框并重定向网页
- gin-vue-admin菜单配置教程:父子菜单
- Spork: Pig on Spark实现分析
- Codewars-parseInt() reloaded(实现英文单词和数字的转换)
- orm2 中文文档 4.1 hasOne(多对一关系)
- 打过工、留过洋、创过业,一位中年IT老兵的反思
- Cmake参数详细介绍
- Java-面向对象(基础知识)
- pch中常用的宏定义
- matlab 积分方程组,请问用matlab怎么解这个定积分方程组
- 关于TF卡内存卡sd卡等读写速度出现大幅下降解决办法之一
- 论项目管理中当面沟通的重要性
- c语言解一元一次方程(及一元高次方程)
- Python通过fake_useragent实现生成随机UserAgent
- Python打开电脑文件夹
- 查看Oracle数据库版本号
- 人工智能行业,就业方向和研究领域的简单介绍
- Java爬虫系列(五) - 爬虫补充内容+ElasticSearch展示数据
- Oauth2 中 access_token和refresh_token的过期时间