博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++函数回顾
阅读量:5024 次
发布时间:2019-06-12

本文共 2683 字,大约阅读时间需要 8 分钟。

  函数的定义语法形式:

类型说明符  函数名(含类型说明符的形参表){      程序语句      }

调用其他函数的函数被称为主调函数,被其他函数调用的函数被称为被调函数。但如果希望在一个函数定义前调用它,则需要在函数调用前添加该函数的函数原型声明。函数原型声明的形式如下:

类型说明符  函数名 (含类型说明的形参表);

与变量的生命和定义类似,声明一个函数只是将函数的有关信息(函数名、返回值类型、参数表等)告诉编译器。声明函数时,形参表只要包含完整的类型信息即可,形参名可以省略(并不推荐,只是可以存在这种情况)。同时函数又可分为自定义函数和系统函数。

1、系统函数

  充分利用系统函数,可以大大减少编程的工作量,提高程序的运行效率和可靠性。编译环境提供的系统函数分为两类,一类是标准c++的函数,另一类是非标准的c++函数,它是当前操作系统或编译环境中所特有的系统函数。例如,cmath中所声明的sin、cos、tan等函数都是标准函数。

具体常用的函数:(转载自)

数学
:1 三角函数double sin (double);double cos (double);double tan (double);2 反三角函数double asin (double); 结果介于[-PI/2, PI/2]double acos (double); 结果介于[0, PI]double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]3 双曲三角函数double sinh (double);double cosh (double);double tanh (double);4 指数与对数double exp (double x); e的x次幂double pow (double x, double y); x的y次幂double sqrt (double);double log (double x); 以e为底的对数,即ln xdouble log10 (double x);log10(x) 以10为底。没有以2为底的函数但是可以用换底公式解 决:log2(N)=log10(N)/log10(2)5 取整double ceil (double); 不小于x的最小整数double floor (double); 不大于x的最大整数6 绝对值int abs(int);整型long labs(long);长整型double fabs (double);浮点型7 标准化浮点数double frexp (double f, int p); 标准化浮点数, f = x 2^p, 已知f求x, p ( x介于[0.5, 1] )double ldexp (double x, int p); 与frexp相反, 已知x, p求f8 取整与取余double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分double fmod (double, double); 返回两参数相除的余数9.平方根double sqrt(double x);字符
:int isalpha(int c);c是否为字母int isdigit(int c);c是否为数字int tolower(int c);将c转换为小写字母int toupper(int c);将c转换为大写字母字符串
:char strcpy(char sl,char s2);将字符串s2复制给s1,即覆盖unsigned strlen(char sr);求字符串str长度内存操作
:void memcpy(void d,void *s,int c);将s指向的内存区域的c个字节复制到d指向的区域类型转换
:int atoi(char s);将字符串转化为整数char itoa(int v,char *s,int x);将整数v按x进制转成字符串s时间
:time_t time(time_t *timer);返回1970/1/1零点到目前的秒数其他
:srand(unsigned seed);设置随机数的种子int rand();产生0-RAND_MAX的随机数exit(int);终止正在执行的程序
函数相关(侵删)

 

 

 2、递归调用

  函数可以直接或间接的调用自身,称为递归调用。对同一个函数的多次不同调用,编译器会为函数的形参和局部变量分配不同的内存空间,它梦互不影响

# include 
using namespace std;// 计算n的阶乘int fun(int n){ int d; if (n==0) d=1; else f = fun(n-1)*n; return f; }int main (){ int n,y; cout<<"请输入参数:" <
>n; y = fun(n); cout<
<<"的阶乘结果为:"<

3、函数的参数传递

  参数传递大致为两类:值传递、引用传递。值传递是指发生函数调用时,给形参分配内存空间,并用实参来初始化形参。这一过程是参数的单向传递,一旦形参获得了值便与实参脱离关系,此后无论形参发生了怎样的改变,都不会影响到实参。引用是一种特殊的变量,可以被认为是另一个变量的别名。也就是说,一个引用,从它诞生之时起,就必须确定是那个变量的别名,而却始终只能作为这一个变量的别名,

 4、函数重载

  两个以上的的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数重载。重载函数的形参必须不同,可以个数不同或者类型不同。

 

转载于:https://www.cnblogs.com/yc555/p/11270422.html

你可能感兴趣的文章
4.14上午
查看>>
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
JS中 String/JSON 方法总结
查看>>
二叉树的遍历问题总结
查看>>
3.14-3.20周总结
查看>>
Spring之面向切面编程AOP
查看>>