C语言const定义法,const在C语言上的定义和用法

我们经常可以在函数接口参数位置看到有const关键字,但是这个关键字到底有什么作用呢?其实const关键字的作用主要是看它在 * 号的左边还是右边。

如果 const 是在 * 号的左边,主要表示的是指向的内存空间内容不能够随意修改;如果 const 是在 * 号的右边,主要表示的是指向的,代表了常量指针,其内容可以修改,但是指针指向的目标内存是不能够修改的;如果*号左右都有指针的话,便说明,指针指向和内容都不能够修改。

举例说明:

int getStr(const char* p1){

//此处const的作用是p1所指向的内存空间不能够随意修改

//p1[0] = 'a';

p1 = 0x1;

p1 = 0x2;

return 0;

}

int getStr2( char* const p1){

//此处const的作用是指针p1是一个常量,指向的地址可以随意修改,但是指针不能改动

p1[0] = 'a';

// p1 = 0x1;

// p1 = 0x2;

//p1++;

return 0;

}

int getStr3(const char* const p1){

//指针和指针地址都不能够随意修改

// p1[0] = 'a';

// p1 = 0x1;

// p1 = 0x2;

//p1++;

return 0;

}

int main(int argc, const char * argv[]) {

system("pause");

return 0;

}

思考:为什么int a[10]是一个常量?

int a[10];

// a++; 报错

int *p = a;

p++;

system("pause");

return 0;

}

因为C++编译器要拿着a去析构内存,不能让你随意改变指针的指向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值