c语言 Const专题

Const专题

Intmain()

{

  1. ConstInt a;

  2. Intconst a;

3, const char *a =Oxa001;  //称为常量指针

4. Char * const a;

5. Constchar * const a;


}

代码1.和代码2.的作用是一样的:不能随便修改a的值

代码3.Const放在×的左边,修饰的是指针a中保存的地址所指向的内存空间,是指指针a中所保存的地址所指向的内存空间不可被写,只可被读

代码4.Const放在×的右边边,修饰的是指针a中保存的地址,是指指针a中所保存的地址不可改变,但是a中保存的地址所指向的内存空间可以被写(内容改变)

代码5.×的左边和右边分别有const修饰,那么指针a中保存的地址和该地址所指向的内存空间多不可被改变

Voidabc(const char *from)

{

From[0] = ‘a’; // 错误! 

From++; //可以!


}

Voidabc(char * constfrom)

{

From[0] = ‘a’; // 可以! 

From++; //错误!


}

结论:

指针和指针所指向的内存空间是两个不同的概念,使用内存四区图来进行理解

const的作用,看const是修饰×的左边还是右边,左边就是指针变量可以改(可以使用a=a+1,a为指针),但是该指针所指向的内存块不可以改变内容;右边就是指针变量不能改,但是该指针所指向的内存块可以改变内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值