------------------------------------------------------------------------------------------------------------------------------------------------------------------OC基础语法标示符:OC语言中对各种变量、方法和类等要素命名时使用的字符序列称为标示符。OC标示符有如下命名规则:1.标示符由字母、下划线“_”、美元“$”和数字组成2.标示符必须以字母、下划线、美元符号开头3.OC标示符大小写敏感,长度无限制约定俗成:OC标示符选取要“见名知意”,并且不能与OC中保留字重名。合法标示符:ZhangSan、Dog、_988、$as_34d非法标示符:if、GirL*#、sad90、34_sdf关键字:OC中一些具有特定含义的,系统专门使用的字符串为“保留字”,或者叫“关健字”(keyword)OC中的关键字全部都是小写int、double、struct、break、long、aout、switch、case、enum、register、typedef、char、extern、return、union、const、float、short、unsigned、continue、for、signed、void、default、goto、sizeof、volatile、do、while、static、if、elseOC常量:OC中的常量值用字符串表示,区分不同的数据类型1.如整型常量:34562.实型常量:3.14159263.字符常量:’a’4.逻辑常量:ture、false5.字符串常量:”helloiphone”注意:区分字符常量和字符串常量OC变量:OC变量是程序中最基本的存储单元,基要素包括变量名,变量类型和作用域。TypevarName[=value];例如:Inti=580;floatf=12.12f;Doubled=0.795;NSString*s=@”helloiphone”;从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。程序的执行过程1.Load代码到内存区2.从Main函数开始执行3.执行过程中的内存管理OC变量的分类按被声明的位置划分:局部变量:方法或语句块内部定义的变量intmain(intargc,char*argv[]){@autoreleasepool{inti=100;NSLog(@i=%d,i);}for(inti=0;i10;i++){Nslog(@ival:%d,i);}}实例变量:方法外部、类的内部定义的变量@interfacePerson:NSObject{intage;intsex;}@end按所属的数据类型划分:基本数据类型变量指针数据类型变量OC局部变量与成员变量方法体内部声明的变量(包括形参)称为局部变量:方法体内部是指与方法对应的大括号内部方法体外,类体内声明的变量为“实例变量”或者“成员变量”@implementationPerson-(void)getAge{inta;intb=a+5;//编译警告,变量a还未被初始化floatc=2.8;}@endOC数据类型基本数据类型:数值型:整数类型int浮点型float,double字符串(char)布尔型空类型(void)指针数据类型:类(class)idC和OC的基本数据类型int:声明整型变量short:声明短整型变量或函数double:声明双精度变量sigend:声明有符号类型变量float:声明浮点型变量struct:声明结构体变量char:声明字符型变量union:声明共用体(联合)数据类型id:通用的指针类型unsigend:声明无符号类型变量enum:声明枚举类型void:声明函数无返回值或无参数long:声明长整型变量或函数数据类型格式化说明符数据类型OC关键字格式说明引导符数据类型OC关键字格式说明引导符整型int%d、%i浮点型float%f短整型shortint%hd、%hi双精度型double%f长类型longint%ld、%li长双精度类longdouble%lf无符号短整型unsignedint%u无短整型unsignedshort%hu无符号长整形unsignedlong%lu整数类型Oc中整数类型用int表示,格式化符号用%i或d%来表示比如:inta=100;Oc语言的整型常量默认为int型,声明long型常量可以后加‘l’或‘L’,如:intb=600;//正确Longc=88888888888L;类型占用存储空间值域范围Byte1个字节-128~127Short2个字节-215~215-1Int4个字节-231~231-1long8个字节-263~263-1浮点类型浮点类型的变量可以存储包括小数的值oc中有两种浮点类型float有效数字为6~7位,格式化说明符号用%f表示double有效数字为15~16位,格式化说明符号用%f,%e或%g表示oc中浮点型常里默认为double型,如果要声明一个常量为float,在数字的后面加f或F。doublem=3.14159;//正确floatf=3.14f;下面列出oc的各种浮点类型类型占用存储空间值域范围Float4字节-3.403E38Double8字节-1.798E308~1.798E字符串charchar型数据用来表示通常意义上的“字符”,格式化说明符用%c表示字符常量为用单引号括起的单个字符,例如:characher=’a’;charb=’0’;charcChar=’苹’;值域范围:-128~`127“\n”,oc编译器把这个当作单个字符unsignedchar值域范围:0~255oc字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示例如:Charc1=’\u0061’;注:Unicode是全球语言统一编码char类型(ASCII码)值符号值符号值符号0空字符34,91(32空格45-92\33!46.93]34“47/94^35#48~570~995-36$58:96`37%59;97~122a~z38&60123{39‘61=124|40(62125}41)63?126~42*64@127DEL(Delete键)43+65~90A~Z逻辑型BooleanBoolean类型指的是用于存储真值和假值的变量,一般用于程序流程控制。Boolean类型数据允许取值true或false,也可以是0或非0的整数替代true和false,这点和java语言不同。实例:Booleanflag=true;If(flag){NSLog(@”HelloiPhone”);}限定词longint:声明变量xx为long的整型变量。格式化字符为%li,如:longinta;longlongint:声明变量xx为longlong的整型变量,格式化符%lli,如:longlongintb;longdouble:跟int基本相同;unsignedint:声明无符号的整型变量。如:unsignedintc;signedint:声明有符号的整型变量。如:signedintd;void类型告诉编译器没有任何范围类型的值不能像其它数据类型一样来声明变量例如:voidi=10;//错误Void通常与方法一起搭配使用,比如:-(void)test{//code;}id类型Id类型是oc中独有的数据类型,它可以存储任何类型的对象,从某种意义上说,它就是一般的对象类型。将number声明为id类型的变量。如:idnumber格式化说明符:%pDataType//基本数据类型inti=10;floatf=2.12f;doubled=34.123e+11;charc='x';NSLog(@i:%d,i);NSLog(@f:%.2f,f);//float类型保2位小数NSLog(@d:%e,d);NSLog(@c:%c,c);//打印x对应的ASCII值NSLog(@ASCIIc=%d,c);//120//打印基本数据类型所占用的字节NSLog(@sizeOfi=%ld,sizeof(i));NSLog(@sizeOff=%ld,sizeof(f));NSLog(@sizeOfd=%ld,sizeof(d));NSLog(@sizeOfc=%ld,sizeof(c));基本数据类型转换作业:加、减、乘、除Booleanflag=true;while(flag){chari;floatnumber1,number2;printf(a表示加法:\n);printf(b表示减法:\n);printf(c表示乘法:\n);printf(d表示除法:\n);printf(q表示退出:\n);scanf(%c,&i);switch(i){case'a':printf(请输入第一个数:\n);scanf(%f,&number1);printf(请输入第二个数:\n);scanf(%f,&number2);printf(%.1f+%.1f=%.1f\n,number1,number2,number1+number2);break;case'b':printf(请输入第一个数:\n);scanf(%f,&number1);printf(请输入第二个数:\n);scanf(%f,&number2);printf(%.1f-%.1f=%.1f\n,number1,number2,number1-number2);break;case'c':printf(请输入第一个数:\n);scanf(%f,&number1);printf(请输入第二个数:\n);scanf(%f,&number2);printf(%.1f*%.1f=%.1f\n,number1,number2,number1*number2);break;case'd':printf(请输入第一个数:\n);scanf(%f,&number1);printf(请输入第二个数:\n);scanf(%f,&number2);printf(%.1f/%.1f=%.1f\n,number1,number2,number1/number2);break;case'q':flag=false;printf(已经退出\n);break;default:break;}}OC类的声明@interfacePerson:NSObject{//实例变量声明intidetify;intage;}//方法声明-(id)initWithAge:(int)_ageidentify:(int)_identify;-(int)getIdentify;-(int)getAge;-(void)setAge:(int)_age;@endOC类的实例变量OC的方法声明OC中方法的调用类的实现@implementationPerson-(id)initWithAge:(int)_ageidentify:(int)_identify{if(self=[superinit]){age=_age;idetify=_identify;}returnself;}-(int)getIdentify{returnidetify;}-(int)getAge{returnage;}-(void)setAge:(int)_age{age=_age;}@endOC面向对象的基本概念-指针对象的创建和使用类与对象的关系对象的初始化初始化方法的实现指定初始化方法内存分析(1)#importPerson.hintmain(intargc,constchar*argv[]){@autoreleasepool{//insertcodehere...NSLog(@Hello,World!);//对象创建并初始化---------------