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. CodeIgniter 3 源码学习笔记《一》

    CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构.通过减少代码量,Co ...

  2. nginx优化

    此文章非原创,出自鸟哥之手~ http://blog.chinaunix.net/uid-25266990-id-2985541.html 改排版改得多,当然红色部分要注意下,用得较多 ------- ...

  3. 第二天--html+css

    <!Doctype html><html>    <head>        <meta charset="utf-8">      ...

  4. 解决上一篇jquery中on的疑惑

    内容都是来自:http://www.365mini.com/page/jquery-on.htm.这里做一下收藏.文章的最后  疑问和解答可以解决所有的疑惑  看了之后能更好的整篇文章. on()函数 ...

  5. 9. 了解 Cocoa-百度百科

    Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon.POSIX.X11和Java). 苹果的面向对象开发框架,用来生成 Ma ...

  6. head标签详细讲解

    head标签详细讲解 head位于html网页的头部,后前的标签,并以开始以结束的一html标签. Head标签位置如图: head标签示意图 head包含标签 meta,title,link,bas ...

  7. C++ Tips and Tricks

    整理了下在C++工程代码中遇到的技巧与建议. 0x00 巧用宏定义. 经常看见程序员用 enum 值,打印调试信息的时候又想打印数字对应的字符意思.见过有人写这样的代码 if(today == MON ...

  8. 一个轻量级分布式RPC框架--NettyRpc

    1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 RPC 框架>,作者用Zookeeper.Netty和Spring写了一个轻量级的分布式RPC ...

  9. 在Mac上开启自带的Apache,httpd服务

    下面演示的是Mac自带的httpd服务 启动httpd服务 AppledeMacBook-Pro:python2_zh apple$ sudo apachectl start AppledeMacBo ...

  10. 将一个实体数据保存到不同的数据表中<EntityFramework6.0>

    2014-11-22声明方式 public class Product { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public ...