OC语法入门(一) 数据类型和运算符

1.1凝视

凝视和其它语言一样,同意单行 ,多行凝视,一份规范的代码里面须要有一些正式的凝视,例如以下凝视:

/*

这是多行

凝视

*/

//这是多行凝视

OC语言临时不支持嵌套凝视。(swift里面支持这一特性)

1.2标示符和变量

1.2.1分隔符

 1.分号

每个句子以分号结尾,一行能够多个语句,一个语句也能够跨多行。可是变量名不能分开

   合法的:

 NSString *name  = @”你好”; int age  = 20;

 NSString * hello = [@”好好”  stringByAppendingString :

 @”我也好好”];

  不合法的:

  NSString *my

             name =@"张三";

 

 2.花括号

   {}成对出现。用在函数,if语句,switch语句里面,ect.

 3.方括号

 方括号用在数组里面,字典里面,还有方法调用里面。

 如:

 arr[2]=2;

 dict[@"id"] = 2;

 NSString *string = @"哈哈";

 [stirng length];

 

 4.圆括号

 參数传递等等。

 5.空格

 空格。词与词之间的切割

 6.圆点

 变量的调用等

 

 1.1.2标示符规则

  Object_C语言标示符必须是字母 下划线 或是美元符号开头 后面能够跟字母数字或是下划线还有美元符号

  1.标示符区分大写和小写

  2.标示符不能为keyword,可是能够包括keyword

  3.标示符不能包括空格

  4.标示符仅仅能有美元$符号,不能有其它符号

 

 1.1.3keyword

 keyword在Xcode里面会呈现特定的颜色。这里举例经常使用的keyword

 auto break case char const continue default do double else enum

 extern float for goto if int long register return short signed sizeof

 static struct switch typedef union unsigned void volatile while

 

 1.2基本数据类型

   1.2.1.整形

   1.2.2.NSLog输出格式

   d 以带符号的十进制输出

   o 八进制无符号输出

   x 十六进制无符号输出

   u 无符号十进制输出整数

   c 以字符输出,仅仅输出一个字符

   s 输出c风格的字符串

   f 以小数形式输出,默认输出6位数字

   e 以指数形式输出浮点数,数字部分默认输出6位

   g 自己主动选择%e或是%f输出,且不会输出无意义的0

   p 以十六进制输出指针的地址

   @ 输出object-c对象

  

   1.2.3.字符型

   1.经常使用的字符型

   \b 退格符

   \n 换行符

   \r 回车符

   \t 制表符

   \" 双引號

   \' 单引號

   \\ 反斜杠

   2.注意:在Xcode里面进行开发的时候,必须使用转义字符否则会出错。

  

   1.2.4浮点型

   浮点数包含十进制的,还有科学计算法形式的。

如12.34、5E2等等。

   注意:用浮点数除以0.0会得到正无穷或是负无穷。用整数除以0.0得到的是整数取值范围的边界值。如10/0.0=2147483647

   -3/0.0 = -2147483647

   1.2.5枚举

   枚举在Object-c开发中用的比較多。

直接上代码

   enum animals{dog=2,cat=1,pig,cow,hen};

   //定义一个枚举变量

   enum animals myCat,myDog;

   myCat  = cat;

   myDog = dog;

   NSLog(@"%d和%d",myCat,dog)//输出:1和2

  

   //定义匿名枚举变量

   enum {male ,famale}me,you;

   me = male;

   you = 1;

  

   1.2.6布尔

   Object-C底层实际是用signed char代表BOOL 而YES和NO的两个底层值是0和1

   系统头文件例如以下定义:

   typedef signed char BOOL;

   #if !defined(YES)

      #define YES (BOOL)1;

   #endif

   #if !defined(YES)

      #define NO (BOOL)0;

   #endif

   //能够给BOOl型赋值

   BOOL b1 = 1;

   BOOL b2 = 100;

  

   //错误

   BOOL b3 = 256;//这是错误的,BOOL是一个仅仅有8位的signed char.越界了

  

   1.2.7类型转换

   类型转换就如同瓶子里面的水相互倒来倒去。小的倒入大的里面基本没问题的。

可是大的倒入小的里面就须要慎重了。可能出问题。

   int intValue = 33000;

   short shortValue = intValue;

   //肯定溢出了

   看溢出过程(没学过计算机组成原理的可能看不懂了...)

   先学一下{

    原码是直接将数值转为二进制,可是计算机以补码的形式保存全部的整数。补码的计算规则例如以下

    正数的补码和原码同样。负数的补码是其反码加一,反码是对原码按位取反。仅仅是最高位保持不变

   

   }

   3000的原码

   00000000000000001000000011101000

   截断为short 仅仅保留 16位

   0000000000000000   1000000011101000//最高位为1,表明为负数

    减去1得到反码      1000000011100111

    除了符号位以外。其它位取反。得到原码

    最后的补码:1111111100011000

   

    1.2.8运算符号(加减乘除这里就忽略)

    &按位与

    |按位或

    ~按位非 ,按位取反

    ^按位异或

    <<按位左移

    >>按位右移

    注意:左移n位就好比是乘以2的n次方,右移n位则是除以2的n次方(不能整除的话则是返回除法结果的最大整数),

    按位运算后之前的操作数本身是不会改变的。

IOS开发新手教程(一)-数据类型和运算符的更多相关文章

  1. iOS开发入门教程

    iOS开发入门教程 http://my.oschina.net/mailzwj/blog/133273 摘要 iOS开发入门教程,从创建项目到运行项目,包括OC基础,调试,模拟器设置等相关知识. iO ...

  2. A-Frame WebVR开发新手教程

    WebVR和WebGL应用程序接口使得我们已经能够在浏览器上创建虚拟现实(VR)体验.但从project化的角度而言,开发社区还须要很多其它方便强大的开发库来简化编程.Mozilla的 A-Frame ...

  3. 开发新手教程【三】Arduino开发工具

    Arduino开发环境搭建 获取Arduino IDE开发工具 下载地址 :http://arduino.cc/en/Main/Software 能够下载release 版.Beta版和前期版本号 A ...

  4. 给iOS开发新手送点福利,简述文本属性Attributes的用法

    给iOS开发新手送点福利,简述文本属性Attributes的用法   文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSF ...

  5. Apple官方IOS开发入门教程[v0.2]

    今天,又跑去找IOS开发入门教程了,结果发现没什么好的PDF. 后来发现,原来苹果官方有开发入门教程,而且写的很好.所以整理出来了,给大家分享一下. 我就不在这里贴pdf的内容了,下面有苹果官方教程的 ...

  6. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  7. PostgreSQL自学笔记:5 数据类型和运算符

    5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...

  8. Java1变量数据类型和运算符

    day02_变量数据类型和运算符   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 {     public  ...

  9. Java中的变量,数据类型和运算符

    变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...

随机推荐

  1. Ubuntu的快捷键

    正如大家都知道的那样,Ubuntu的终端的Terminal能快捷的操作该linux系统,减少鼠标的使用.(vim党,尽量避免使用鼠标) 在Ubuntu中,终端的快捷键为(大小写无关的): Ctrl + ...

  2. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  3. R与数据分析旧笔记(十六) 基于密度的方法:DBSCAN

    基于密度的方法:DBSCAN 基于密度的方法:DBSCAN DBSCAN=Density-Based Spatial Clustering of Applications with Noise 本算法 ...

  4. JSP三大常用对象request、response、session

    1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应.它是HttpServletRequest类的实例. 序号方法说明 objectgetA ...

  5. C#控件TabControl隐藏page

    隐藏 这个需求其实就是TABCONTROL控件会有很多提前制作好的PAGE页面,每次软件启动不可能所有页面都显示出来,目前想了个比较简单的方法解决这个问题 首先定义一个List集合存储TABCONTR ...

  6. 用python 10min手写一个简易的实时内存监控系统

    简易的内存监控系统 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 文章github源地址,还可以看到具体的代码,喜欢请在原链接右上角加个star 腾讯视频链接 ...

  7. ios 刷新BUG

    UItextView edited = yes  ; 导致 刷新奇怪: 有些方法不要自己调用: 可能会破坏组件自己的生命周期: 建议模块化开发组件,自己处理自己的事:

  8. 编程器NAND Flash 技术入门

    NAND Flash分类 SLC(Single-Level Cell)架构:单一储存单元(Cell)可储存1bit data MLC(Multi-Level Cell)架构:单一储存单元(Cell)可 ...

  9. Sunday字符串匹配算法

    逛ACM神犇的博客的时候看到的这个神奇的算法 KMP吧,失配函数难理解,代码量长 BF吧,慢,很慢,特别慢. BM吧,我不会写... 现在看到了Sunday算法呀,眼前一亮,神清气爽啊. 字符串匹配算 ...

  10. ubuntu12.04下 安装虚拟主机

    Ubuntu Linux 方法一 一.修改/etc/apache2/sites-available/ 1. 打开目录 /etc/apache2/sites-available/, 发现 default ...