C 语言const关键字使用

1 const与变量
#include<stdio.h>

int main(){
        const int a = 100;
        //a = 90; ERR readonly
        return 0;
}
2 cost与指针

     (1) const int *p1

     (2) int  const *p2

     (3) int * const p3

(1)(2)情况,指针所指向的数据是只读的,也就是p1,p2本身的值可以修改,但是他们指向的数据不能被修改

(3)情况,指针是只读的,也就是p3的本身的值不能被修改,他们指向的数据可以被修改

#include<stdio.h>

int main(){
        int num = 10;

        const int *p = &num;
        int num1 = 11;
        p = &num1;
        //*p = 10; ERR
        printf("p = %d\n",*p);

        int const *p1 = &num;
        p1 = &num1;
        //*p1 = 100; ERR
        printf("p1 = %d\n",*p1);


        int * const p2 = &num1;
        *p2 = 100;
        //p2 = &num ERR
        printf("p2 = %d\n",*p2);
        return 0;
}
const和函数形参

const 通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。

#include<stdio.h>

void print(int *p,int *p1){
        *p = 100;
        *p1 = 100;

        printf("p = %d, p1 = %d\n",*p,*p1);
}
void print1(const int *p, int * const p1){
        int num = 1000;
        p = &num;
        //*p = 100; ERR
        *p1 = 1000;
        //p1 = &num;
        printf("p = %d, p1 = %d\n",*p,*p1);
}
int main(){

        int num = 10;
        int *p = &num;
        int *p1 = &num;

        print1(p,p1);
        return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值