实际参数与形式参数

一、形参与实参的区别
实际参数是出现在函数调用圆括号中的表达式,形式参数是函数定义的函数头中声明的变量。实参是通过值传递的。
二、实参的转换
1.编译器在调用前遇到原型。例如实参类型是int,但形参是double类型,编译器自动会把实参类型变为double类型。
2.编译器在调用前没有遇到原型。编译器执行默认的实参提升,例如,float类型变为double类型。char类型和short类型变为int类型。
三、数组型实参
1.数组型参数和其他类型一样,数组形参可定义为引用或非引用类型。大部分情况下,数组以普通的非引用类型传递,此时数组会悄悄地转换为指针。一般来说,非引用类型的形参会初始化为其相应实参的副本。而在传递数组时,实参是指向数组第一个元素的指针,形参复制的是这个指针的值,而不是数组元素本身。函数操纵的是指针的副本,因此不会修改实参指针的值。然而,函数可通过该指针改变它所指向的数组元素的值。通过指针形参做的任何改变都在修改数组元素本身。
2.在数组参数声明中使用static
形式:
int x(int a【static 3】,int n)
{
}
在这里static的存在只是一个提示的意思,表明数组a的长度至少可以保证是3
3.变长数组形参
定义形式:
在这里插入图片描述
第一种,第一个参数的值确定了第二个参数的长度,这两个参数顺序不能改变。
第二种,使用*的理由是:函数声明时形式参数的名字是可选的,如果第一个参数的定义被忽略了那么就没有办法说明数组a的长度是n。
*的使用为我们提供了一个线索———数组的唱的与形式参数列表中前面的参数相关。
四、复合字面量
int x[2]=[10,20];这只是一个普通的声明。
(int [2]){10,20};这是一个复合字变量。
注:把声明中的数组名去掉,剩下的复合字变量的类型名。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起个名字真的难啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值