当前位置:首页 » 编程语言 » c语言参数默认值

c语言参数默认值

发布时间: 2023-07-13 11:13:36

‘壹’ 默认参数的用法

c语言中没有参数默认值的概念,可以利用宏来模拟参数默认值;
在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。
默认参数的语法与使用:
(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;
(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。
注意:
(1)默认参数只可在函数声明中设定一次。只有在无函数声明时,才可以在函数定义中设定。
(2)默认参数定义的顺序为自右到左。即如果一个参数设定了缺省值时,其右边的参数都要有缺省值。
如:int mal(int a, int b=3, int c=6, int d=8) 正确,按从右到左顺序设定默认值。
int mal(int a=6, int b=3, int c=5, int d) 错误,未按照从右到左设定默认值。c设定缺省值了,而其右边的d没有缺省值。
(3)默认参数调用时,则遵循参数调用顺序,自左到右逐个调用。这一点要与第(2)分清楚,不要混淆。
如:void mal(int a, int b=3, int c=5); //默认参数
mal(3, 8, 9 ); //调用时有指定参数,则不使用默认参数
mal(3, 5); //调用时只指定两个参数,按从左到右顺序调用,相当于mal(3,5,5);
mal(3); //调用时只指定1个参数,按从左到右顺序调用,相当于mal(3,3,5);
mal( ); //错误,因为a没有默认值
mal(3, , 9) //错误,应按从左到右顺序逐个调用(调用实参,即,实参必须是连续的)
再如: void mal(int a=8, int b=3, int c=5); //默认参数
mal( ); //正确,调用所有默认参数,相当于mal(8,3,5);
(4)默认值可以是全局变量、全局常量,甚至是一个函数。但不可以是局部变量。因为默认参数的调用是在编译时确定的,而局部变量位置与默认值在编译时无法确定。

‘贰’ C语言-默认值

如果是全局变量,所有的数值变量都赋零,字符变量都赋NULL即0.指针变量也是NULL。即全部变量都自动初始化了。
如果是局部变量,所有的变量都不初始化,因此为随机数。如果不赋值就使用,很危险。

‘叁’ C语言中定义int变量,默认值是多少

如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。

区分变量的类型,有两种情况。

1、局部变量。

局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。

比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。

2、全局变量或静态局部变量。

所有的全局变量,即定义在函数外的变量,默认值为0。

所有的静态局部变量,即定义在函数内部的static int name形式的,默认初始化为0。

(3)c语言参数默认值扩展阅读:

int是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。

目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]

在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]

定义方法:

inti;//定义整形变量i

inti=1;//定义整形变量i并初始化为1

定义常量:

constinti;//编译错误,因为常量需要给予一个初值

constinti=1;//定义常量i,值为1

Java定义常量:

finalinti=1;//定义常量i,值为1

‘肆’ C语言中的全局变量的默认值

全局变量在没有赋值以前系统默认为0,而局部变量在没有赋值以前的值是不确定的,所以在声明局部变量的时候一定要初始化。

热点内容
折纸手工解压小方块 发布:2025-02-08 16:32:45 浏览:252
php与运算符 发布:2025-02-08 16:32:45 浏览:762
如何用服务器搭建悬赏平台 发布:2025-02-08 16:29:53 浏览:278
ftp服务器破解版 发布:2025-02-08 16:28:41 浏览:521
mysql配置访问ip 发布:2025-02-08 16:22:49 浏览:116
体表面积简易算法 发布:2025-02-08 16:18:04 浏览:687
存储器的分级储存是如何实现的 发布:2025-02-08 16:11:27 浏览:193
电脑怎么看路由器密码 发布:2025-02-08 16:10:13 浏览:401
汇编宏编译 发布:2025-02-08 16:08:30 浏览:194
androidlayoutview 发布:2025-02-08 15:45:01 浏览:622