逗号语句执行-默认值相关-函数重载
Table of Contents
逗号语句执行 #
printf("%d",(int a=3*5,a*4,a+5));
- output>:20
在这个 printf 语句中,a=3 * 5 , a * 4,a+5 是一个逗号表达式。逗号表达式会依次计算其内部的子表达式,并返回最后一个子表达式的值。但是,逗号表达式的一个重要特性是,它会保证所有的子表达式(从左到右)都会被求值,并且除了最后一个子表达式的结果都会被丢弃
带有默认(缺省)参数的函数 #
- 缺省函数必须从左往右定义,并且在一个缺省参数的右边不能有未指定的缺省值的参数.
定义 #
- 在函数定义or函数声明中指定了初始值的参数称为默认参数
int special(int x=5,float y=5.3);
初始化 #
- 可定义为任意的初始化表达式,可以包含函数调用以及全局变量等
int fun (int w=sqrt(a),int x=a*a);
说明 #
void fun(int w,int x=1 ,int y=1,int z=1)
is RIGHTvoid fun(int w,int x=1 ,int y, int z=1)
is ERROR
规则 #
- 如果函数定义在前,函数调用在后,在函数定义处写默认值
- 如果函数调用在前,函数定义在后,在函数声明处写默认值,函数定义处不要写
函数重载与默认值 #
说明 #
- 缺省函数必须从右往左定义,并且在一个缺省参数的右边不能有未指定的缺省值的参数
void fun(int w,int x ,int y=1 );
void fun(int w,int x );
- 该段代码有歧义若参数为 2,3 以上两种方式均合适产生二义性导致报错