1.const
const 修饰了*p1 / *p2
const int * p1=&age;
int const * p2=&age;//和上面的意义一样 ,换句话说就是 在 “ * ”一侧的话是一样的作用
 
如:
int num=15;
p1=#
p2=#//都可以变 从age地址变成了Num地址
 
*p1=30;
*p2=30;//报错,内容不可变!
 
int * const p3=&age;//和上面不一样了
const 离p3近说白了这个p3指针是个常量不能被修改了 所以, 下面会报错
如:
int num=25;
p3=#//报错
 
*p3=30;//age 就变成30了
 
2.const 和 #define宏的区别
宏是在编译前直接替换
const修饰的是变量
所以如果代码中宏很多 那么效率要低于const
#denfie AGE 20
int const AGE=20;
{
  nslog(@“%@”,AGE);
 nslog(@“%@”,AGE);
 nslog(@“%@”,AGE);
 nslog(@“%@”,AGE);
//如果是宏定义那么效率是4个内存 但是如果是变量那么只有一个内存
}
 
引申:那么可以搞个const.h 和const.m 专门用来管理字符串常量。
 
2.oc申明变量的区别

方式一:直接在@interface中的大括号中声明。

@interface MyTest : NSObject{

NSString *mystr;

}

方式二:直接用@property声明

@interface MyTest : NSObject{
@property (strong, nonatomic) NSString *mystr;

}

 
使用方式一声明的成员变量是只能在自己类内部直接使用,不能在类的外部使用,而且无法通过 “类名. 点”的方式显示。
方式二则相反,它可以在类的外部访问(声明在.h文件中可以.m也不可以访问),在类的内部可以通过下划线"_变量名”或者"self.变量名"的方式来访问。
 
3.id<XXX> object; 表示 object 是一个遵守xxx协议的指针。或者说只要遵守了xxx协议的指针就可以赋值给object了。
4..Object<Type> xcode7之后新增了泛型了,就是对摸个数组,字典,或者自定义模型里面的内容的类型进行限定。
5.数组和指针
 5.1 数组名代表,指向这个数组的第一个元素的指针
比如: int numbers[2][2]={
                            {10,20},
                            {11,21}
                                    };
那么  numbers[0]:指向numbers[0][0];
     number[1]:指向numbers[1][0]
           numbers :指向numbers[0]
 5.2,指针的移动的大小与指向内容的大小是一致的 numbers+1=&numbers+1*sizeof(numbers)
如 :
&numbers[0][0]+1,移动4个字节=numbers[0]+1
&numbers[0]+1,移动8个字节=numbers+1
&numbers+1,移动16个字节
 
NSLog(@"%ld,%p,%p", sizeof(&numbers),&numbers,&numbers+1);
NSLog(@"%ld,%p,%p", sizeof(&numbers[0]),&numbers[0],&numbers[0]+1);
NSLog(@"%ld,%p,%p", sizeof(numbers),numbers,numbers+1);
NSLog(@"%ld,%p,%p", sizeof(&numbers[0][0]),&numbers[0][0],&numbers[0][0]+1);
NSLog(@"%ld,%p,%p", sizeof(numbers[0]),numbers[0],numbers[0]+1);
 
2016-07-28 06:32:16.853 数组和指针[2715:178450] 8,0x7fff5fbff7c0,0x7fff5fbff7d0
2016-07-28 06:32:16.855
数组和指针[2715:178450] 8,0x7fff5fbff7c0,0x7fff5fbff7c8
2016-07-28 06:32:16.855
数组和指针[2715:178450] 16,0x7fff5fbff7c0,0x7fff5fbff7c8
2016-07-28 06:32:16.855
数组和指针[2715:178450] 8,0x7fff5fbff7c0,0x7fff5fbff7c4
2016-07-28 06:32:16.855 数组和指针[2715:178450] 8,0x7fff5fbff7c0,0x7fff5fbff7c4
 

c和oc小知识的更多相关文章

  1. Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)

    自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...

  2. Swift 基础部分(建议掌握OC字符串知识的翻阅)

    更新说明: Swift 目前已经发布到4.0版本了,以前写的这整个Swift学习系列的文章,有很多的不足之处,我会重新整理整个系列文章,也是相当于重新复习一遍Swift,后面系列文章的改动之处全都会做 ...

  3. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  4. HTML+CSS中的一些小知识

    今天分享一些HTML.CSS的小知识,希望能够对大家有所帮助! 1.解决网页乱码的问题:最重要的是要保证各个环节的字符编码一致! (1)编辑器的编辑环境的字符集(默认字符集):Crtl+U 常见的编码 ...

  5. iOS APP开发的小知识(分享)

          亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...

  6. Unix系统小知识(转)

    Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...

  7. salesforce 零基础开发入门学习(十)IDE便捷小知识

    在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...

  8. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  9. Jquery:小知识;

    Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器   上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...

随机推荐

  1. mysql测试题

    MySQL测试题 一.表关系 请创建如下表,并创建相关约束 创建数据库create database school charset utf8; 建表create table class(cid int ...

  2. LCQCL

    Linux Command Quick Check List 记录一些我Linux使用中的问题的解决方案. # 挂起: 几乎只对RAM供电以保存工作状态的极低能耗状态. 任意键或电源键退出(主要看RP ...

  3. Saving the entire git diff between two commits in a text file

    git diff A10..A1 > my.diff 转自: http://stackoverflow.com/questions/19067896/saving-the-entire-git- ...

  4. 设计模式--代理模式Proxy(结构型)

    一.代理模式 为其他对象提供一种代理以控制对这个对象的访问. 代理模式分为四种: 远程代理:为了一个对象在不同的地址空间提供局部代表.这样可以隐藏一个对象存在于不同地址空间的事实. 虚拟代理:根据需要 ...

  5. 移居 GitHub

    博客很久没能更新了,很多代码也从博客园逐渐转移到 GitHub,欢迎新老用户光顾: https://github.com/kedebug 个人博客:http://kedebug.me/

  6. ABAP 出库单打印 产品 A搭A A搭B显示方式

    *&---------------------------------------------------------------------* *& Report   *& ...

  7. 考前预习(Ubuntu配备)

    这几天考前预习,趁现在不想预习,写点之前就想写的东西吧. 贴一下个人认为有用的,在Ubuntu装机后的一些小事.不过挺杂的,主要是拿来给以后的自己看,以及让现在无聊的我有点事做. 首先,Ubuntu官 ...

  8. AOP 面向切面编程, Attribute在项目中的应用

    一.AOP(面向切面编程)简介 在我们平时的开发中,我们一般都是面对对象编程,面向对象的特点是继承.多态和封装,我们的业务逻辑代码主要是写在这一个个的类中,但我们在实现业务的同时,难免也到多个重复的操 ...

  9. 【Java EE 学习 56】【酒店会员管理系统技术点总结】

    一.树状菜单加载 这是js的一个典型应用,使用zTree插件能够完成该项任务http://www.ztree.me/v3/main.php 我是用的版本:zTree2.5 使用方法: <%@ p ...

  10. Spring 自带的定时任务

    需要几天后,或者某个时间后,定时查询数据.需要用到Spring自带的一个注解 @Scheduled(cron="0/5 * * * * ? ")//每隔5秒钟执行 创建一个clas ...