今天气温低、风大,我穿一个略正式的T恤衫、一条大短裤和人字拖在办公室里录制最新一期课程视频。反正拍不到下半身,所以下半身衣着随意我面向的录制环境如下图,我背后是一个绿幕。设备由广东省教学改革项目资金提供。

合成的视频如下图

视频网址 https://www.bilibili.com/video/BV1Vf4y1P7pq?p=19 或者长按下方二维码

上周讲了指针,这周讲函数。指针这个知识点是C/C++的关键点及难点。函数这一部分内容,跟指针密切相关。我敢保证,只要你把最近两周的内容掌握好了,在就业市场上,就可以“藐视”大部分号称熟悉C/C++的程序员。

本周新内容有:

  • 函数调用的开销(没免费午餐,代码模块化要付出代价的)

  • 用基本数据类型、指针、结构体等逐一详述函数参数pass by value的真正意思。

  • 由上一条推导出引用(reference)的必要性(指针已经够头大了,再来个引用!但理解了后会觉得太棒了)

  • 内联函数(inline function)跟宏定义优缺点对比。

我自己最为满意的是,我亲手绘制了很多内存数据示意图,带领学生理解代码背后的数据关系,而不是照猫画虎式的编程。如下图就展示了指针、引用、结构体等的关系。C/C++本来就是操纵内存数据的语言(特别是用于计算的时候),理解了数据存储,一切会豁然开朗。

下图表示函数的参数

目前所有的课件、例程及书稿在Github上,跟课堂同步更新,网址:https://github.com/ShiqiYu/CPP 欢迎关注,也欢迎各位教C或C++的同行老师参考,并建议和指正。

教学团队成员:于仕琪、廖琪梅、王大兴。

[课程视频]指针、引用、函数参数、内联函数等相关推荐

  1. c++入门 有关《c++关键字》 《命名空间》《缺省参数》《函数重载》《引用》《内联函数》《outo关键字》

    1.C++关键字(c++98) C++总共63个关键字,c语言一共32个关键字. 下面我列 举出c++的关键字: 2.命名空间 在c/c++中,变量,函数和后面要学到的类都是大量存在的,这些变量,函数 ...

  2. 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元

     1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化. //1.一个是通过在后面:a(x),b(y)的方式实现初始化. //2.第二种初始化的方式是直接在构造方法里面实现初始化. 案例如下: ...

  3. 对普通函数、宏函数、内联函数的作用机制的探索

    这次我们来分析的是C/C++程序员经常遇到的问题,如何在普通函数.宏函数.内联函数之间做取舍,其实它们三者之间并没有什么绝对的你好我差的说法,只要掌握了三者的作用机制的话,结合实际情况一般都能做出正确 ...

  4. C++宏函数和内联函数

    C++宏函数和内联函数 1. 宏常量&宏函数 1.1 定义 // a. 定义一个宏常量 #define MAX 1024 // 宏常量 MAX称为符号常量// b. 定义一个宏函数 // 宏函 ...

  5. mysql 内联函数_内联函数 - freeboy小亮 - 博客园

    (1)什么是内联函数? 内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内. (2)为什么要引入内联函数? 当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题.另外,前面我们 ...

  6. 宏定义,宏函数和内联函数

    宏定义,宏函数和内联函数 宏是什么: 简单宏替换出现的问题: 带参数的宏定义(宏函数): 宏的优点: 宏的缺陷,内联函数的引入 内联函数(空间换时间) 宏是什么: 宏(#define)命令是C语言中的 ...

  7. 【C/C++】宏函数与内联函数的区别

    [C/C++]宏函数与内联函数的区别 文章目录 [C/C++]宏函数与内联函数的区别 一.概念 二.特性 三.优缺点 3.1 内联函数的优缺点? 3.2 宏的优缺点? 四.笔试题 4.1 为什么要是用 ...

  8. java内联函数_Java之内联函数_内联函数的优缺点

    描述 内联函数 1.内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度. 2.Java语言中有一个关键字fina ...

  9. 【C++之函数】引用符号、内联函数inline、函数重载

    文章目录 引用(&)是标识符的别名 内联函数(关键字:inline) 函数重载 引用(&)是标识符的别名 声明一个引用指向一个对象,则只是为对象的别名,其本身同所指对象保持一致. 例如 ...

  10. Kotlin系列四:标准函数、扩展函数、高阶函数、内联函数

    目录 一 标准函数 1.1 作用域函数 1.1.1 let 1.1.2  with 1.1.3 run 1.1.4 apply 1.1.5 also 1.1.6 takeIf 与 takeUnless ...

最新文章

  1. 消费金融首推即时沟通工具“马上”探索科技金融发展新方向
  2. 猿创征文|C++软件开发值得推荐的十大高效软件分析工具
  3. python划分训练集、验证集和测试集
  4. 计算机网络自顶向下WireShark实验:IP
  5. android导入html文件怎么打开,Android浏览器如何打开本地html文件
  6. 基于改进禁忌搜索算法求解TSP问题(Matlab代码实现)
  7. java中一个简单的涂鸦程序
  8. 分账的使用场景及解决方案
  9. webug4.0支付漏洞
  10. 一家两制抗风雨 有得有失看未来(转)
  11. TypeError: first argument must be an iterable of pandas objects, you passed an object of type “DataF
  12. 幼儿园微课怎么制作?怎么给微课配音?
  13. 人工智能能否代替人类?
  14. 数据结构(十一) -- C语言版 -- 树 - 二叉树基本概念
  15. Unity - 搬砖日志 - Android 的 Optimized Frame Pacing - 对应 ProjectSettings 配置字段:androidUseSwappy
  16. 团队作业第六周--alpha阶段项目复审
  17. 搭建hexo主题Butterfly部署github+个人服务器
  18. python使用multiprocess.managers搭建分布式计算模型
  19. upupw网站平台绿色搭建Edusoho
  20. php ajax parsererror,mui.ajax报错 error:parsererror

热门文章

  1. RP Fiber Power特征
  2. PageHelper类(pagehelper工具)的分页方式与使用
  3. Altium Designer中无法正常显示汉字的解决方法
  4. Loot创始人提出Loot扩展项目提案,激励Loot扩展项目创作者
  5. Keynote操作技巧两则:屏幕互换及中途切换
  6. ifconfig 配IP 地址,网关. route 添加路由和网卡启动
  7. 使用Selenium中的webdriver出现浏览器闪退的原因
  8. 命令行进入mysql
  9. Reack hooks的使用
  10. 修改个人博客halo系统从gradle为maven全程记录步骤和问题总结