c++知识点合集已经完成欢迎前往主页查看,点点赞点点关注不迷路哦
MYSQL知识点持续更新中
MYSQL第一章节DDL数据定义语言的操作----点我进入
MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入
MYSQL-第三章节DCL-管理用户,控制权限----点我进入
MYSQL-第四章节常用函数说明----点我进入
目录
定义一个函数应当包括以下内容
- 指定函数的名字,以便按函数名字进行调用(尽量做到见名知意)
- 指定函数的类型,即函数的返回值
- 指定函数的参数名字和类型,以便在调用函数时向他们传递数据。对无参函数不需要这一项。
函数结构:
函数类型 函数名()
{
声明部分
语句部分
}
或
函数类型 函数名(void)
{
声明部分
语句部分
}
注意:
无参函数:函数名后面的括号为空没有任何东西
函数名后面括号内的void表示空也就是表示函数没有参数
在定义函数时要用类型名,指定函数值的类型,即指定函数值带回来值的类型
函数结构:
函数类型 函数名(参数类型1 参数名1, …, 参数类型n 参数名n)
{
声明部分
语句部分
}
3. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。
4. 函数的声明一般出现在函数的使用之前。要满足 先声明后使用 。
5. 函数的声明一般要放在头文件中。
注意:
编译系统在检查函数调用时要求函数名、函数类型、参数个数和参数顺序必须与函数声明一致,实参类型必须与形参类型相同或赋值兼容。由于不检查参数名,因此在函数声明时,形参名可以省略。例如: int add( int ,int );
例子
int Max(int x, int y)
{
int z; //函数体中的声明部分
z = x>y ? x:y; //下面是语句部分
return z; //将z的值作为函数函数值带回主调函数
}
注意:
函数结构
函数类型 函数名()
{
}
例子:
Void dunmmy()
{
}
注意:
该函数体为空,调用此函数时无需做任何事情,没有什么实际作用。
例子:
void printf()
{
printf(“我是函数调用语句的方法”)
}
int main()
{
void printf(); //函数的声名
printf(); //函数的调用
}
将被调函数成为表达式的一部分
例子:
int max(int x,int y)
{
int z ;
z = x>y ? x:y;
return z;
}
Int main()
{
Int c = 2*max(2,3);
printf(“%d”,c); //结果为:6
}
将被调函数的结果成为函数参数的一部分
例子:
int max(int x,int y)
{
int z ;
z = x>y ? x:y;
return z;
}
Int main()
{
Int c = max(7,max(5,6));
printf(“%d”,c); //结果为:7
}
形参:形式参数(定义一个函数时括号里面的变量名称为形式参数)
实参:实际参数(在主调函数中调用一个函数时函数名括号里面的的变量名为实际参数)
例子:
int max(int x,int y) // x , y 为形式参数
{
int z ;
z = x>y ? x:y;
return z;
}
int main()
{
Int c = 2*max(2,3); // 2 , 3 位实际参数
printf(“%d”,c);
}
#include指令是一种编译预处理指令,也就是源程序在被编译之前编译器执行的操作。
作用:在源程序被编译之前,向源程序中复制头文件文本内容
头文件:被包含在其他文件的起始处的文件,有一些常用的功能模块
例子:
若在主函数中需要用到数学函数的话则需要在本文件开头写上
#include
函数的递归调用:在函数的嵌套调用中,如果函数嵌套调用的是自己,这就是函数的递归调用
在调用fun函数时,又要调用fun函数,这就是fun函数的递归调用。但是,这里的fun函数的调用是无终止的,故函数的递归调用必须要设置终止条件,通常在函数定义时通过if语句控制
递归求和例题:递归求1-100之和
int RecursionFunc(int num) //1-100和
{
if(num == 0) //中止条件
return 0;
else
return num + RecursionFunc(num - 1);
}
函数的定义是独立的,在一个函数中不能嵌套定义另外一个函数。但是,函数可以嵌套调用,即可以在一个函数中调用另一个函数。
例子:
void dog()
{
printf(“我会跑”);
}
void fish ()
{
printf(“我会飞”);
}
void pepole ()
{
printf(“我会唱,跳,rap,和篮球”);
}
void choice (char ch)
{
switch(ch)
case p:void pepole();break;
case d:void dog();break;
case f:void fish ();break;
}
int main()
{
void choice (); //进行声名
char ch;
printf(“请输入p,f,d,进行选择”);
ch=getchar();
void choice (ch);
}
每个变量都有属于它的作用域,就是这些变量在什么范围内有效; 我们按照变量的作用域范围可以把变量划分为局部变量和全局变量;
局部变量出现在三种地方:
注意:
在一个函数内部定义的变量只在本函数范围内有效,也就是只有本函数内才能引用它们,在此函数外不能使用这些变量;
在复合语句内定义的变量只能在本复合语句范围内有效,只有本复合语句内才能引用他们,在该复合语句外不能使用这些变量;
还有就是函数的形参,只在该函数内有效;
例子
变量sum 定义在函数的开头
int fun(int x,int y)
{
int sum;
sum=x+y;
}
变量sum 定义在函数的开头,所以它是局部变量,它的作用域就是这个函数,出了这个函数,就会自动被销毁,无法被别处引用;同时 变量 x 和 y作为形参也是局部变量;
复合语句中的局部变量:
A:
If(1)
{
int a;
cout<
} B: If(1) { Int a=3; } cout<
注意 A:程序可以正常运行输出3,而B程序不可以正常运行 int a 的使用范围只存在于复合语句中 在函数外部定义的变量就是全局变量或外部变量;全局变量为该源文件中所有函数所共有,它的作用范围是从变量定义的位置到源文件结束; Int a=5,b=3; //定义一个全局变量a,b Int main() { Int max(int x,int y); 5 Int max(int a,int b) 3 } 5 Int max(int x,int y) { Int z; z=x>y ? x:y; return z; } 全局变量
例子: