1.函数是什么样子:

dataType  functionName( dataType1 param1, dataType2 param2 ... ){//do something }//形式参数param...

2.什么是形式参数,什么是实际参数?

declareFunc(num1 , num2); //实际参数 num1,num2

3.函数声明

dataType  functionName( dataType1 param1, dataType2 param2 ... );//此处加分号

对于多个文件的程序,通常是将函数定义放到源文件(.c文件)中,将函数的声明放到头文件(.h文件)中,使用函数时引入对应的头文件就可以,编译器会在链接阶段找到函数体。

在所有函数外部定义的全局变量的作用域默认是所有的源文件。

4.函数如何传递不同类型的参数

  1.基本类型 ,复制变量的值给形参的形式传递。

    double avarage(double a , double b){return (a+b)/2;}

    int main() {
double num1 = 343.456;
double num2 = 789.126;
std::cout << "result is "<<avarage(num2,num1) << std::endl; //即在执行时赋值 a = num1;b=num2 //result is 566.291
}

    2.类实例和数组,传递指针或者引用。

传递数组:
int avarageArr(int arr[], int size){//传递指针和数组大小。
int sum=0;
for(int i =0;i<size;i++){
sum+= arr[i];
};
return sum/size;
}
int main() {
int arr[3]= {1,2,3};
cout <<"result is "<<avarageArr(arr,3) << endl;
return 0;
}
传递对象:
struct Book_data{
std::string No;
}; int main() {
Book_data s1;//实例化
s1.No = "1-xd-b-3";//给s1赋值
printBookNo(s1);//传递引用 || &s1传递地址
return 0;
}
void printBookNo(Book_data &bookRef){ //绑定引用给参数,相当于&bookRef = s1 || *bookPointer指针接收地址
std::cout << bookRef.No<< std::endl;// || bookPinter->No 使用指针获取
 }

  5.花括号定义作用域。

  double num1 = 343.456;
  if(num1>0){
  double num1 = 789.12;
  cout<< num1 <<endl;//789.12
  }
cout<< num1 <<endl;//343.456

  6.#define(宏定义命令),用一个标识符来表示一个任意的字符串,如果代码中使用该标识符,那么该标识符就都替换成设置的字符串。

#define N 20 //不要加分号,加上分号会被连分号一起换出去。
int main() {
int sum = 7 + N;
printf("%d\n", sum);//27
return 0;
}

  7.内置预定义宏

    printf("Date : %s\n", __DATE__);//__DATE__:表示当前的编译日期;
   printf("Time : %s\n", __TIME__);//__TIME__:表示当前的编译时间;
printf("File : %s\n", __FILE__);//__FILE__:表示当前源文件的名称;
printf("Line : %d\n", __LINE__);//__LINE__:表示当前源代码的行号;

c++ 函数篇的更多相关文章

  1. PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载   中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...

  2. Python函数篇(5)-装饰器及实例讲解

    1.装饰器的概念   装饰器本质上就是一个函数,主要是为其他的函数添加附加的功能,装饰器的原则有以下两个: 装饰器不能修改被修饰函数的源代码 装饰器不能修改被修改函数的调用方式   装饰器可以简单的理 ...

  3. Python函数篇(7)-正则表达式

    1.正则表达式   正则表达式为高级的文本模式匹配,抽取,与/或文本形式的搜索和替换功能提供了基础,简单的来说,正则表达式是由一些字符和特殊符号组成的字符串.Python通过标准库中的re模块来支持正 ...

  4. Scala进阶之路-Scala函数篇详解

    Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...

  5. C语言函数篇(二)函数参数基础设计

    形参实现一种数据传入的接口 ,由 实参 拷贝给 形参. 拷贝!!!!!!!!!!! 例1: void func(int tmp){ //意图是实现传进来的参数 +1 tmp++; } int mian ...

  6. 30s源码刨析系列之函数篇

    前言 由浅入深.逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美. 本系列是对名库 30SecondsOfCode 的深入刨析. 本篇是其中的函数篇,可以在极短的时间 ...

  7. 《前端之路》- TypeScript(二) 函数篇

    目录 一.定义函数方法 二.定义函数传参 三.可选传参 四.默认传参 五.传递剩余参数 六.函数重载 七.箭头函数 八.总结 一.定义函数方法 在 es5 中定时函数的方法有 命名函数和函数表达式(匿 ...

  8. JavaScript进阶之高阶函数篇

    JavaScript进阶之高阶函数篇 简介:欢迎大家来到woo爷说前端:今天给你们带来的是JavaScript进阶的知识,接下来的系列都是围绕着JavaScript进阶进行阐述:首先我们第一篇讲的是高 ...

  9. 通过实战理解C语言精要——函数篇

      前言 本篇博客是对C语言函数部分的重点内容和细枝末节通过实战得到的经验的总结精炼,不涵盖C语言函数的全部内容,所有提炼内容均来自提炼与实战,阅读需要对函数部分有一定基础,可用于对C语言函数的理解提 ...

  10. Python函数篇(3)-内置函数、文件处理

    1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...

随机推荐

  1. ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装

    目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...

  2. vue学习笔记:组件

    组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,说白了就是一组可以重复使用的模板.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽 ...

  3. windows自带xbox game bar如何更改录制视频保存位置

      若要更改保存游戏剪辑的位置,请使用文件资源管理器根据需要将"捕获"文件夹移动到电脑上的任意位置. Windows 会将游戏剪辑和屏幕截图保存在该文件夹中(无论移动到哪里).   ...

  4. WSL2安装nvm并配置npm镜像源

    1.下载安装脚本并执行 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 2.关闭命令行后 ...

  5. vue-表格拖拽

    1. el-table结合sortable 参考:https://blog.csdn.net/weixin_42460570/article/details/125765599?ops_request ...

  6. docker之rabbitmq delayed message exchange

    创建dockerfile FROM rabbitmq:3.9.11-management-alpine COPY rabbitmq_delayed_message_exchange-3.9.0.ez ...

  7. vue3项目在页面退出时弹窗确认--用vant组件Dialog弹窗在路由改变的时候不生效问题

    写vue3的H5项目的时候有个需求是回退时弹窗确认是否退出当前页面 一.第一个办法------使用onbeforeRouteLeave路由钩子 const formRouteAbi = localSt ...

  8. Vue I18n Vue.js 的国际化插件+elementUI的使用

    先附上插件官网 vue-i18n中文官网 我们的vue项目需要支持多语言时,可以使用这个插件 安装插件教程在官网可以找到 代码结构可以如下 zh.js 查看代码 export default { lo ...

  9. elastalert部署和使用

    一.Elastalert简介 Elastalert是Yelp公司基于python开发的ELK日志告警插件,Elastalert通过查询Elasticsearch中的记录与定于的告警规则进行对比,判断是 ...

  10. tp5中接口,需要跨页面传送id时,不使用地址栏传送id,使用session保存。

    在Tp5中使用ajax点击某个按钮或连接时需要跳转页面并传送数据. 一般情况下都是绑定到跳转地址的后面以地址栏的方式传输,然后再去相应的页面使用js扒下来,比较麻烦,而且地址栏传值也不安全. 下面这个 ...