宏和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也需要写在*号的后面

Const的用法的更多相关文章

  1. C/C++中const的用法 分类: C/C++ 2015-07-05 00:43 85人阅读 评论(0) 收藏

    const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结 ...

  2. const的用法,特别是用在函数前面与后面的区别!

    const的用法,特别是用在函数后面 在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const ...

  3. ECMAScript 6 入门之let和const的用法

    1.let的用法 1. //查看js的引入路径是否正确 console.log("1:",1) 2. var a=1; let b=2; console.log("a:& ...

  4. let 与 const 的用法

    let 与 const 的用法 let 用来声明变量,并且会在当前作用域形成 代码块 conts 用来声明常量,所谓常量就是物理指针不可以更改的变量. 所谓代码块,最简单的做法就是(这个 {} 就是一 ...

  5. C++const关键字用法

    const关键字是C++新引进的关键字,目标是用于定义常量,避免C语言中使用宏定义出现的边际问题,并且const是类型安全的,即const定义的是不可修改值的变量,它是有类型的,但是宏替换只是简单的进 ...

  6. C++ 中 static 与 const 的用法及对比

    在这个学习过程中我对 static 及 const 的使用时常会混淆,因此整理,加深记忆 一.类的静态成员 如果某个属性为整个类所共有,不属于任何一个具体对象,则采用 static 关键字来声明静态成 ...

  7. C/C++语言中const的用法

    1. const 在C和C++中的区别     C++中的const正常情况下是看成编译期的常量,编译器并不为const分配空间,只是在编译的时候将期值保存在名字表中,并在适当的时候折合在代码中. 所 ...

  8. 【转】const的用法,特别是用在函数前面与后面的区别!

    在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const成员函数中,this的类型是一个指向 ...

  9. C++中const关键字用法

    为什么使用const?采用符号常量写出的代码更容易维护:指针常常是边读边移动,而不是边写边移动:许多函数参数是只读不写的.const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替 ...

  10. C++中的const的用法

    const对象.指向const对象的指针.const指针(通过一个面试题来了解)   1.const对象 (1)关于const,很多企业的笔试.面试都会出现,很简单,就问你“const的含义?”. 我 ...

随机推荐

  1. Adobe Illustrator里使用fontawesome矢量图标

     简单教程:1.安装FontAwesome.otf字体2.打开http://fontawesome.io/cheatsheet/3.选中图标图片,ctrl+c4.粘贴到AI中5.选中粘贴的内容,修改字 ...

  2. oratop 各个指标项说明

    Section 1- oratop and database/instance specifics spid       :oratop's server SPID connected to inst ...

  3. 如何在IIS7下配置ASP+ACCESS环境

    如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...

  4. 每日英语:A Different Color: China's Chameleonic Politics

    China has tried your form of government and found it wanting. That was the message delivered by Chin ...

  5. npm install -g 全局安装总是出现permission权限问题的解决方案

    npm install -g 全局安装总是出现permission权限问题的解决方案 开始使用node的时候,在使用npm安装global packages时,习惯性地使用npm install -g ...

  6. Oracle 11g RAC环境下Private IP修改方法及异常处理

    Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...

  7. Oracle中group by用法

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...

  8. 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明

    ====================================================================== [百度Web富文本编辑器ueditor在ASP.NET M ...

  9. 苹果 Mac OS 下查看系统隐藏文件

    Mac OS X中有很多系统隐藏的信息文件, 一般在Finder中都是看不到,也修改不了的. 但通过在"终端"中输入命令, 就可以在Finder中显示出来: defaults wr ...

  10. java ConcurrentModificationException探究

    当集合结构被修改,会抛出Concurrent Modification Exception. fail-fast会在以下两种情况下抛出ConcurrentModificationException ( ...