c++ 第7课 函数的参数

c++在函数声明的时候可以提供一个默认值,必须只能在函数声明中指定

#include <stdio.h> 
int a(int x=1);  //此处为函数声明,可以在这里给函数提供一个默认值   
				//如果int x未赋一个初始值,a()调用的时候一定要有参数
int main()
{
	printf("a()=%d",a());   //a()未提供参数值,默认x=1 	
} 
int a(int x)   //此处为 函数定义 不能在此处给函数提供默认值 
{
	return x*x;
}

/*这样子声明也可以*/
#include <stdio.h> 

int a(int x=1)   //将函数a()放在主函数之前可以直接在定义时给参数赋初值 
{				//放在main韩式之前就相当于声明???现在在这个位置到底是声明还是定义???等我找到答案在来更改	
	return x*x;
}

int main()
{
	printf("a()=%d",a());   //a()未提供参数值,默认x=1 
	
} 

占位参数
在C++中可以为函数提供占位参数
占位参数只有参数类型声明,而没有参数名声明

int a(int x,int)  //int为占位符
{
	return x;
}
int main()
{
a(1);//错误占位符未赋值
}

函数参数默认值赋值
从最右到左

#include <stdio.h> 

int add(int x=1,int y=1,int z=1);

/*参数有初始值的话必须 从最右边到左 连续的几个参数都有赋值*/
/*
int add(int x,int y=1,int z=1);  //正确
int add(int x=1,int y,int z=1);  //错误,赋值必须 从右到左连续赋值,不能中间间隔一个未赋值 
int add(int x=1,int y=1,int z);  //错误,赋值必须 从最右到左连续赋值
*/

int main()
{
	printf("a=%d\n",add());      //a未提供参数值,默认1+1+1
	printf("a=%d\n",add(2));    //2+1+1   未赋值的参数默认使用 初始值 
	printf("a=%d\n",add(2,2));  //2+2+1	
	
	return 0;
} 


int add(int x,int y,int z)
{
	return x+y+z;
 } 

/*有讲到的内容备忘下*/
void add()void add(void)
C:两者是不等价的add()可以有无数的参数   add(void)没有参数
C++:两者是等价的  占位符就是为了兼容c中add()可以有无限参数而设计出来的
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值