theFirstFourChepter

第2章:

框架:一系列函数、类等程序单元的集合,可以系统提供某一方面的内容

ARC+自动释放池:Objective-C 2.0降低内存管理难度

标识符:变量、类和方法的命名原则:(字母 _ $)开头,后面跟任意数量的(字母_ $数字);

        Ps:标识符大小区分,不能包含空格,不能包含例如@%等其余符号

数据类型:

   1)基本类型

      a:整形(默认为signed):short int2; int4; long int4; long long8;sizeof字节

      b:字符型:char1个字节的unsigned整数 0-2558位);

                 Boolsigned char 1个字节8-128-127,不是所有非零整数值赋给bool都会得到YES:它只取整数值得低8位,若其均为0,则为NO

      C:浮点型:float4double8long double16

           Ps:正负浮点型除以0.0得到正负无穷,整数除以0.0得整数值范围内的最大数,若除以0,系统报错

      d:枚举型:本质为unsigned int4个字节,可以比较大小进行计算等,开始为0

类型转换:short-int-long int-long long -float-double-long double

          整数转成小数只要不溢出就没问题

          小数转成整数就会直接舍弃小数部分(并不是四舍五入)

   2)构造类型

   3)指针类型

运算符:

   取余% :取余运算不允许出现double类型的量。先进行除法,所以不允许出现0

   ++aa++:前者为先加后运算,后者为先运算后加。

   位运算符:所有的数字在计算机内部以二进制码的形式存在,正数为原码,负数为补码。

             左移右移相当于乘以2除以2

             各种运算符优先级:P48

第三章:

   一个单独的分号相当于一个空语句!!小心多加引号。

   for循环中:由于只能有一个声明语句,如果要初始化多个变量,类型得一致才行

               egfor(int i=0;j=0;i<10;j++)

   break:直接跳出循环

   continue:忽略后面的语句

   return:跳出整个函数

   goto:直接转到想要的位置

   字符串:OC实际上不提供字符串支持,是用字符数组来保存字符串,可以在char数组        

           中加入\0’作为字符串结束的标志。定义了10个,但是在第三位加入‘\0’,

           则系统认为字符串的长度是2

   数组:可以不定义长度但初始化;或者定义长度后单独初始化;

            egchar * a[1];a={“sdfsa”};这个不行!!!!只能a[0]={“sfd”};

         全局数组若没有初始化会自动初始化为0,且若指定其长度,不允许是变量!!除

          非是const变量;局部数组若没有初始化里面的数据是随机的,不可靠的

第四章:返回类型默认会int,若不需要指明为void

        返回值需要但是没有返,则会返回一个随机不可靠的数据

       OC中传入函数是由参数传递机制控制的:值传递,若是指针,则会改变

  全局变量和局部变量:

       局部变量:函数内部定义的变量(形参,函数局部变量,代码块局部变量)

       全局变量:函数外部定义的变量.

                 若全局变量不想被外部文件访问,则加定义时static

                 若全局变量定义在后,需要使用,则需要先声明:extern int global

       #import 的作用相当于在代码前面加上需要的代码!!!!

  动态存储和静态存储:

       动态:运行期间分配的内存:全部变量+static变量

       静态:函数形参,局部变量,函数执行现场数据和返回地址

#define #undef: 预处理:在执行编译之前

      注意:查找+替换, 不是C语言,不可以用=,不可以用;

      带参数的宏定义:#define G(r) PI*2*(r) :用括号括起来

#import “” #import <> :前者是搜索当前文件所在的路径(或通过Xcode修改),后者是在系

                      统指定讹“系统”文件中寻找

字符指针:

        用来表示字符串,可以重新赋值;eg: char a[100]; a=”fdsfs”;

                                         char *po;po=”fdsaf”;对   

函数指针:赋值给指针时可以不用*,但是调用它时肯定得用

        声明:(返回值)(*名字)();eg(int)(* fnpoint)();

        赋值:(int)(* fnpoint)(); fnpoint=ave || (int) (*fnpoint)()=ave;

        调用:(*fnpoint) (2,4);

结构体:

1.定义

   struct point

{

   int x;

   int y;

};

struct point point1;

struct point point 2;

2.另外一种定义+合理初始化

struct point

{

 int x;

 int y;

} point1={1,2};这个可以

struct point point2;

point2 ={1,2};该行错

point2.x=1;point.y=2;

3.利用typedef

  typedef struct point FKpoint; //enum一样

  FKpoint point1;

块:

块的定义: 返回值(^ 块名)(参数)=^(参数)

                                   {

                                   };  

         或者:返回值(^ 块名)(参数);

               块名==^(参数)

                     {

                     }

块的调用:块名(传进去的参数)。

块的局部变量:

             块使用的局部变量是定义时捕获的值,可读不可写;若要可读可写,变量前

             _block

块的参数:定义块的类型

 #typedef void (^FKBlock)(int,NSString *)

FKBlock block=^(int a ,NSString * b)

             {

             };//块的类型是FKBlock

block()//调用块

posted on 2016-08-09 13:36  tuziyuxin  阅读(88)  评论(0)    收藏  举报

导航