//!时间: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++基础学习笔记:函数相关推荐

  1. Python3 基础学习笔记 C07【函数】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  2. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

  3. Python3 基础学习笔记 C09【文件和异常】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  4. Python3 基础学习笔记 C08 【类】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  5. Python3 基础学习笔记 C06【用户输入和 while 循环】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  6. Python3 基础学习笔记 C05【字典】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  7. Python3 基础学习笔记 C03【操作列表】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  8. Python3 基础学习笔记 C02【列表】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  9. Python3 基础学习笔记 C01【变量和简单数据类型】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  10. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

最新文章

  1. 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
  2. 弹出提示对话框并重定向网页
  3. gin-vue-admin菜单配置教程:父子菜单
  4. Spork: Pig on Spark实现分析
  5. Codewars-parseInt() reloaded(实现英文单词和数字的转换)
  6. orm2 中文文档 4.1 hasOne(多对一关系)
  7. 打过工、留过洋、创过业,一位中年IT老兵的反思
  8. Cmake参数详细介绍
  9. Java-面向对象(基础知识)
  10. pch中常用的宏定义
  11. matlab 积分方程组,请问用matlab怎么解这个定积分方程组
  12. 关于TF卡内存卡sd卡等读写速度出现大幅下降解决办法之一
  13. 论项目管理中当面沟通的重要性
  14. c语言解一元一次方程(及一元高次方程)
  15. Python通过fake_useragent实现生成随机UserAgent
  16. Python打开电脑文件夹
  17. 查看Oracle数据库版本号
  18. 人工智能行业,就业方向和研究领域的简单介绍
  19. Java爬虫系列(五) - 爬虫补充内容+ElasticSearch展示数据
  20. Oauth2 中 access_token和refresh_token的过期时间

热门文章

  1. 角度单位中角分、角秒的进制转换
  2. matlab 平方根法解方程组,matlab改进平方根法
  3. 怎么去掉360导航页
  4. 做了个小工具,可以一键导出所有微信表情包,有趣的表情包,不再只限一个APP使用,【微信表情包吸血鬼】
  5. java开发团队认知_一个优秀的研发团队应该具备什么特征
  6. 第一次参加公司研发部门高级别会议之感
  7. SECS/GSM 测试工具
  8. table表格表头添加斜线
  9. java 复制网页文字_网页文字复制不了?你这样做,全网文字任你免费复制!快get!...
  10. 关于用LM2596做的DC-DC数控电源