const关键词修饰参数【案例演示】

Java培训中,当我们在定义函数时,在函数内部,只想让参数参与某种运算,不想改变参数的值,这时可以使用const关键字修饰形式参数。例如,定义一个函数:void even(int num),用于判断传入的整数是否是偶数,但在函数内部并不想参数num发生任何改变,这时可以使用const关键字修饰num。下面通过一个案例演示const修饰参数的使用,具体如例1所示。

例1 const.c

    #define _CRT_SECURE_NO_WARNINGS        //关闭安全检查
    #include <stdio.h> 
    void even(const int num )            //使用const修饰num
    { 
        if (num % 2 == 0) 
            printf("%d是偶数!",num); 
        else
            printf("%d是奇数!",num); 
    } 
    int main() 
    { 
       int n; 
        printf("请输入一个整数:"); 
        scanf("%d", &n); 
        even(n); 
        return 0; 
    }

例1运行结果如图1所示。


图1 例1运行结果

在在例1中,第3~9行代码定义了even()函数,用于判断传入的数据是奇数还是偶数;第12~14行代码定义整型变量n,并调用scanf()函数从键盘读取数据赋值给变量n;第15行代码调用even()函数,将n作为参数传入函数。由图1可知,当输入11时,even()函数判断11是奇数。

在even()函数中,参数num被const关键字修饰,则num在even()函数内部不能被更改,否则编译器会报错。如果在even()函数中修改num的值,示例代码如下:

void func(const int num )            //使用const修饰num
{
    num += 10;                        //修改num的值
    if (num % 2 == 0)
        printf("%d是偶数!",num);
    else
        printf("%d是奇数!",num);
}

再次在main()函数中调用even()函数,编译器会报错,如图2所示。

图2 编译器报错

由图2可知,num被const关键字修饰,是不可更改的。但是const修饰的变量,虽然无法通过变量本身修改其值,却可以通过指针进行修改,定义一个指向num的指针,通过指针可以修改num的值,示例代码如下:

int* p = &num;   //定义指向num的指针
*p += 10;         //通过指针改变num的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值