Const的用法

宏和const的区别:

1.宏执行的是替换操作,这也就意味着会在内存中开辟多个临时空间 这样显然不是很好

2.宏不可以修改

const :

用const修饰的变量 为常量 不能修改,在内存中只有一份内存

用const修饰的全局变量 为全局常量

 

const修饰指针变量:

const int *p = NULL;

int const *p = NULL;

上面两个都表示*p不能该 p可以改  含义是一样的

 

int *const p = NULL;

上面的语句表示p这个指针指向不可以改 但是*p 可以改 也就是指向的内容可以改

 

所有得出结论:

const右面如果是*p:表示*p不能改,p可以改

const右边如果是p :表示p不能改  但是*p可以改

这个有什么用呢?

这个应用场合 一般在 我们调用一个函数,传入参数 但是我们不希望我们传入的参数的值或者指向被改变的时候 那么我们就可以采取上面的做法了 直接定义为下面这样:

void test(const int *p)

{

  //在这里面只能拿到值 但是不可以修改值

}

int main(){

  int num = 10;

  test(&num);

}

其他使用方法:

如果用const 修饰基本数据类型有以下两种方式:

const int age = 10;

int const age = 10;

如果用const修饰基本数据类型需要放在*号的后面:

NSString *const name = @"jack";

引用(extern)也是一样 const也需要写在*号的后面

 

转载于:https://www.cnblogs.com/syios/p/4773050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值