C++笔记--函数
- 函数的定义和声明
- 函数的声明和定义都必须描述相同的类型,但是声明可以不写参数名,定义则必须写参数名,但是他们的参数名字可以不同。
- 一个局部变量被声明为static,那么这个局部变量将只会被初始化一次,而其他的局部变量则随情况而定进行初始化
#include<iostream>
using namespace std;
int f(int );
int f(int a){
while(a--){
static int n=;//这个静态局部变量只能被修改一次
int x=;//这个局部变量一直是在被修改 cout<<"n=="<<n++<<",x=="<<x++<<endl;
}
}
int main(){
f();
f();
}
- 函数参数
- 数组参数:不会也不能按值传递,T[]类型的数组传递时会被转换成T*。
- 多维数组作为参数:可以利用指针的数组代替。(实际就是指向数组的指针)
- 默认参数不确定数目的参数 1.如果函数中出现不确定数目的参数,就用。。。表示
- 默认参数的类型将在函数声明时检查,默认参数一般是被放在最后的,它的后面如果出现非默认的参数,就会报错
- `int a(int a,int b=0,int c);//这个是错误的`。
- 不确定的参数就用。。。表示
- 指向函数的指针
- 用函数指针变量调用函数:可以用一个指针变量指向函数,然后调用这个指针变量去调用此函数
-
#include <stdio.h>
#include <stdlib.h> int main()
{
int max(int,int);
int (*p)(int,int);//定义P为一个指向函数的指针变量,如果*p没有括号就不是指针变量了
int a,b,c;
p = max;//p指向max函数的开头
scanf("%d,%d",&a,&b);
c = (*p)(a,b);
printf("a=%d,b=%d,max=%d\n",a,b,c);
return ;
} int max(int x,int y)
{
int z;
if(x>y) z = x;
else z = y;
return(z);
}
-
- (1) 指向函数的指针变量的一般定义形式为:
数据类型 (*指针变量名)(函数参数列表)
这里数据类型就是函数返回值的类型
- 用函数指针变量调用函数:可以用一个指针变量指向函数,然后调用这个指针变量去调用此函数
- 总结
C++笔记--函数的更多相关文章
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- 《python基础教程(第二版)》学习笔记 函数(第6章)
<python基础教程(第二版)>学习笔记 函数(第6章) 创建函数:def function_name(params): block return values 记录函数:def f ...
- <数据结构与算法分析>读书笔记--函数对象
关于函数对象,百度百科对它是这样定义的: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.又称仿函数. 听起来确实很难懂,通过搜索我找到一篇 ...
- swift swift学习笔记--函数和闭包
使用 func来声明一个函数.通过在名字之后在圆括号内添加一系列参数来调用这个方法.使用 ->来分隔形式参数名字类型和函数返回的类型 func greet(person: String, day ...
- 《JS语言精粹》学习笔记 函数部分の闭包
要理解闭包,首先要理解变量作用域,变量的作用域就两种,全局变量和局部变量,函数内部可以直接读取全局变量,函数外部无法读取函数内部的局部变量. 闭包定义:能读取函数内部局部变量的函数就是闭包,而只有函数 ...
- Python学习笔记——函数
1.标准类型内建函数 <1>type() —— 返回对象的类型 <2>cmp() —— 比较两个对象,返回两个对象的ASCII码的差 <3>str().repr() ...
- golang笔记——函数与方法
如果你遇到没有函数体的函数声明,表示该函数不是以Go实现的. package math func Sin(x float64) float //implemented in assembly lang ...
- JavaScript笔记:函数
函数是定义一次但却可以调用或执行任意多次的代码块. 一.函数定义 javascript中的函数使用function关键字来定义,常用的函数定义分为三种形式: 声明式函数定义 function sum( ...
- JavaScript学习笔记-函数
函数的两种创建方式:函数定义表达式.函数声明语句 编译时,函数声明语句创建的函数会‘被提前’至外部函数的作用域顶部,在该作用域内可以被随意调用: 而函数表达式创建的函数,要调用它必须赋值给一个变量,编 ...
- JavaScript学习笔记-函数实例
函数实例 var p = { a:15, b:'5', f1:function(){ var self = this; console.log(self.a+self.b); f2(); functi ...
随机推荐
- Android Studio导入项目,报错 Error:Unsupported method: BaseConfig.getApplicationIdSuffix().
从GitHub上clone下来的第三方库,由于时间间隔很长,gradle的版本和本机的版本不一致,导入到Android Studio中会报错,错误信息如下: Error:Unsupported met ...
- QString的拼接
QString的append()函数则提供了类似的操作,例如: 1. str = "User: "; 2. str.append(userName); 3. str ...
- Hive的JDBC访问引发的Maven依赖的实践
invalid LOC header (bad signature) 原来是因为依赖问题,直接依赖“hive-server”的见解依赖jetty-all有冲突:诡异的是在main方法中执行是OK的,但 ...
- bzoj 1977 [BeiJing2010组队]次小生成树 Tree
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1977 kruscal别忘了先按边权sort.自己觉得那部分处理得还挺好的.(联想到之前某题的 ...
- 8、Selenium+python安装HTMLTestRunner插件
1.打开网址:http://tungwaiyip.info/software/HTMLTestRunner.html,下载HTMLTestRunner.py 2.copy其HTMLTestRunner ...
- Linux驱动多线程 - 互斥量
1.内核多线程相关内容 1.1 头文件#include <linux/kthread.h> 1.2 定义/初始化变量 struct mutex SPI_work; /*定义互斥体*/ mu ...
- Lib之过?Java反序列化漏洞通用利用分析
转http://blog.chaitin.com/ 1 背景 2 Java反序列化漏洞简介 3 利用Apache Commons Collections实现远程代码执行 4 漏洞利用实例 4.1 利用 ...
- git 学习 多个提交用同一个commit
git add .git commit --amend(连续按连个ZZ)git push -f origin ibm_branch(命令行可能不好用,用IDEA force push好用)
- 【Java】java.util.Objects 源码学习
2017-02-10 by 安静的下雪天 http://www.cnblogs.com/quiet-snowy-day/p/6387321.html 本篇概要 Objects 与 Object ...
- 2016.1.23 通过cmd在程序中执行sql脚本
System.Diagnostics.Process pro = new System.Diagnostics.Process(); pro.StartInfo.FileName = "cm ...