Skip to main content
  1. CPPs/

逗号语句执行-默认值相关-函数重载

·76 words

逗号语句执行 #

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 RIGHT
void 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 以上两种方式均合适产生二义性导致报错