1. 修饰变量

  一般设置传参数的时候 若设置为const, 则在调用过程中不允许修改参数值;(readonly)

  1. // *前const: 不能通过指针, 改变p指向的值
  2. const int *p = &age;
  3. // 错误写法
  4. *p = num;
  5.  
  6. // *后const: 指针不能指向其他变量
  7. int * const q = #
  8. // 错误写法
  9. q = &age;

2. 用在iOS项目中, 修饰通知

宏(#define)在编译过程中完成代码替换(项目中调用几次, 编译的时候宏定义就会出现几次);

const(全局常量)在编译中调用的是同一个内存的同一个常量;

  [注意]: 在.pch文件中如果用const定义常量, 则会报链接错误(link command error), 因为编译时相当于, 每个调用了该变量的文件中都会编译一次, 所以报multi_define错误; 需要借助extern关键字来引用.

static: (静态变量)存储在静态存储区, 只有当前类能够访问;

  1. .h文件
  2. /**
  3. * 点击表情键盘中的表情按钮通知
  4. */
  5. extern NSString *const PPEmotionBtnDidSelectedNoticefication;
  6. extern NSString *const PPEmotionBtnDidSelectedKey;
  7.  
  8. /**
  9. * 删除按钮通知
  10. */
  11. extern NSString *const PPEmotionCancelBtnDidSelectedNoticefication;
  12. extern NSString *const PPEmotionCancelBtnDidSelectedKey;
  13.  
  14. .m文件 #import <Foundation/Foundation.h>
  15. NSString *const PPEmotionBtnDidSelectedNoticefication = @"PPEmotionBtnDidSelectedNoticefication";
  16. NSString *const PPEmotionBtnDidSelectedKey = @"PPEmotionBtnDidSelectedKey";
  17.  
  18. NSString *const PPEmotionCancelBtnDidSelectedNoticefication = @"PPEmotionCancelBtnDidSelectedNoticefication";
  19. NSString *const PPEmotionCancelBtnDidSelectedKey = @"PPEmotionCancelBtnDidSelectedKey";
  20.  

OC 之 const的更多相关文章

  1. C 和 OC 字符串转换 NSString 和 char * 转换 const char* 与 char *

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { char *s = "He ...

  2. OC字符串与C语言字符串之间的相互转换

    1.C转OC字符串 const char *cString = "This is a C string"; // 动态方法 NSString *ocString1 = [[NSSt ...

  3. 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString

    OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...

  4. ffmpeg API录制rtsp视频流

    原文出自http://blog.csdn.net/zxwangyun/article/details/8190638#reply   作者 Sloan 这里在录制时,并没有进行转码,只是相当于把rts ...

  5. C++全总结

    // CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include & ...

  6. IOS开发学习笔记016-Foundation框架

     Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length)  typedef struct _NSRange { NSUIntege ...

  7. openssl 1.1.1 reference

    openssl 1.1.1 include/openssl aes.h: # define HEADER_AES_H aes.h: # define AES_ENCRYPT 1 aes.h: # de ...

  8. OC中修饰符:宏define 常量:const extern

    const const最好理解,修饰的东西不能被修改 指针类型根据位置的不同可以理解成3种情况: I 常量指针 // 初始化之后不能赋值,指向的对象可以是任意对象,对象可变. NSString * c ...

  9. oc温习八:static、extern、const 的了解

    参考文章:http://www.cocoachina.com/ios/20161110/18035.html 1.const 这个单词翻译成中文是“常量”的意思.在程序中我们知道“常量”的值是不能变的 ...

随机推荐

  1. QT线程(一):线程类

      线程之间共享数据,但又单独执行: QT线程QThread是平台无关的: 通常主线程从main开始执行,而在主线程中创建其他线程,其他线程派生于QThread: 1.线程优先级 总共8个优先级:线程 ...

  2. leecode 每日解题思路 152 Maximun Product Subarray

    问题描述: 问题链接:152 Maximum Product Subarray 在经典的算法解析中, 有关的分治和动态规划的,经典题型之一就是求最大子段和, 这道题就是他的变形:求最大子段积; 这个问 ...

  3. Android(java)学习笔记153:layout_weight使用注意事项

    1. android:layout_weight使用说明: layout_weight是权重的意思,也就是各个控件所占的比重,用在LinearLayout布局中.当我们使用layout_weight的 ...

  4. UPDATE---修改表中数据

    UPDATE table_name SET column1=value1,column2=value2,... [WHERE conditions]; 例: UPDATE userinfo SET n ...

  5. C++学习(五)

    一.拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆.2.形如class X {  X (const X& that) { ... }};的构造函数 ...

  6. 循环json里面的数据

    {{each company as cvalue i}}   {{each value.Goods as gvalue i}}   {{each gvalue.SKU as value i}}     ...

  7. mysql相关重要问题解决

    root密码修改 MySQL 的管理员密码: sudo mysqladmin -u root password newpassword: mysql无法安装:删除/etc/mysql,   /var/ ...

  8. 16_AOP入门准备_动态代理模式

    [工程截图] [PersonDao.java] package com.HigginCui.daoProxy; //目标类接口 public interface PersonDao { public ...

  9. OpenCV(5)-图像掩码操作(卷积)-锐化

    锐化概念 图像平滑过程是去除噪声的过程.图像的主要能量在低频部分,而噪声主要集中在高频部分.图像的边缘信息主要也在高频部分,在平滑处理后,将会丢不部分边缘信息.因此需要使用锐化技术来增强边缘. 平滑处 ...

  10. AJAX原理及优缺点

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...