资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012/11/4,#,基础课程,MAC,Apple Inc.,Objective-C,语言,苹果技术开发课程,Liujie 2012,Lession 2,Objective-C,数据类型和运算符,Liujie 2012,数据类型和运算符,本章内容包括:,简单数据类型,Objective-C,其它数据类型,运算符和表达式,简单数据类型,一、整型:,int(4bytes),如果是,64,位系统则,(8bytes),,使用,%i,格式输出。,long int(long),short int(short)(2bytes),unsigned int,unsigned long,unsigned short,简单数据类型,1,、整型变量的定义:,int main(int argc,char*argv),NSAutoreleasePool*pool=NSAutoreleasePool alloc init;,int integerVar=100;,NSLog(integerVar=%i,integerVar);,pool drain;,return 0;,简单数据类型,2,、混用整型变量:,NSAutoreleasePool*pool=NSAutoreleasePool alloc init;,int a,b,c,d;,unsigned u;,a=12;,b=-24;,u=10;,c=a+u;,d=b+u;,NSLog(a+u=%i,b+u=%i,c,d);,pool drain;,return 0;,简单数据类型,简单数据类型,1,、,float,定义:,float floatingVar=331.79;,double doubleVar=8.44e+11;,NSLog(floatingVar=%f,floatingVar);,NSLog(doubleVar=%e,doubleVar);,NSLog(doubleVar=%g,doubleVar);,说明:,%f,十进制形式表示,float,%e,科学计数法表示,%g,最短表示法,用指数形式。,简单数据类型,2,、,float,误差:,float a=123456.789e5;,float b=a+20;,NSLog(%f,a);,NSLog(%f,b);,简单数据类型,3,、,float,有效位数:,float a=33333.33333;,double b=33333.33333333333333;,NSLog(%f,a);,NSLog(%f,b);,请检查结果,默认保留,6,位小数部分。其余四舍五入,简单数据类型,三、字符型:,区分字符和字符串,a,b,1,2,字符,”hello world”,字符串,简单数据类型,三、字符型:,转义字符:,n:,换行,t:,下一制表位置,b:,退格,r,回车,f,换页,反斜杠,单引号,”,双引号,ddd,八进制,xhh16,进制,简单数据类型,1,、字符型的整数存储:,NSAutoreleasePool*pool=NSAutoreleasePool alloc init;,char a=120;,char b=121;,NSLog(%c,%c,a,b);,NSLog(%i,%i,a,b);,pool drain,;,/,x,y,120,121,简单数据类型,2,、字符型的,运算,:,NSAutoreleasePool,*pool=NSAutoreleasePool alloc init;,char a=a;,char b=b;,a=a-32;,b=b-32;,NSLog(%c,%c,a,b);,NSLog(%i,%i,a,b);,pool drain;,/,A,B,65,66,简单数据类型,四、字符串:,NSString,定义,,MFC,是,CString,,(苹果和微软两个公司从,1998,年就是这么竞争着),合法字符串:,”china”,”$12.5”,简单数据类型,五、,id,类型:,Objective-C,中,id,类型可以代表任何数据类型对象,这种类型被定义为指向对象的指针,在使用时不需要加*。,简单数据类型,1,、,id,设计类的运用(,student,类设计,),:,interface Student:NSObject,int sid;,NSString*name;,property int sid;,property(nonatomic,retain)NSString*name;,-(void)print;,-(void)setSid:(int)sid andName:(NSString*)name;,end,简单数据类型,1,、,id,设计类的运用(,student,类设计,),:,#import Student.h,implementation Student,synthesize sid,name;,-(void)print,NSLog(“,学号:,%i,姓名:,%,sid,name);,-(void)setSid:(int)sid1 andName:(NSString*)name1,self.sid=sid1;,self.name=name1;,end,简单数据类型,1,、,id,设计类的运用(,member,类设计,),:,interface Member:NSObject,NSString*name;,int age;,property(nonatomic,retain)NSString*name;,property int age;,-(void)print;,-(void)setName:(NSString*)name1 andAge:(int)age1;,end,简单数据类型,1,、,id,设计类的运用(,member,类设计,),:,implementation Member,synthesize name,age;,-(void)print,NSLog(,我的名字是:,%,我的年龄是,%i,name,age);,-(void)setName:(NSString*)name1 andAge:(int)age1,self.name=name1;,self.age=age1;,end,简单数据类型,1,、,id,设计类的运用(调用,),:,Member*member1=Member allocinit;,member1 setName:Sam andAge:36;,id data;,data=member1;,data print;,Student*student1=Student allocinit;,student1 setSid:1122334455 andName:Lee;,data=student1;,data print;,student1 release;,member1 release;,简单数据类型,六、类型转换:,不同数据类型可以转换成同一种数据类型,进行计算,包括自动转换和强制转换,1,、自动转换:,float PI=3.14159;,int s,r=5;,s=r*r*PI;,NSLog(s=%i,s);,简单数据类型,2,、强制转换:,float f=5.75;,NSLog(int)f=%i,f=%f,(int)f,f);,结果:,(int)f=5,f=5.750000,简单数据类型,七、枚举类型:,格式:,enum,类型,值,值,值,举例:,一、定义,enum sex male,female,二、声明变量,enum sex student,teacher,三、赋值,student=male,简单数据类型,七、枚举类型:,格式:,enum,类型,值,值,值,举例:,enum direction left,right,up=9,down,enum direction mydirection;,NSLog(”%i”,mydirection);,mydirection=down;,NSLog(”%i”,mydirection);,简单数据类型,八、,typedef,:,格式:,typedef,类型 类型,举例:,typedef int age,age i,j;,typedef NSString*NameObject;,NameObject obj1,obj2;/,等价:,NSString*obj1,*obj2;,检查,2,个对象是否相等,if(obj1 compare:obj2=NSOrderSame),简单数据类型,九、,BOOL,:,取值:,YES,NO ,1,0,举例:,int p,d;BOOL isPrime;for(p=2;p=50;+p)isPrime=YES;for(d=2;d ,=,5,、赋值运算:,=,+=,-=,*=,/=,%=,&=,|=,=,6,、条件运算:,?:,7,、逗号,组合表达式,8,、指针:,*,取内容,&,取地址,9,、计算字节数:方法,sizeof,算符优先级:,p50,运算符和表达式,除法实例:,NSLog(%i,%i,20/7,-20/7);NSLog(%f,%f,20.0/7,-20.0/7);,求余数,int a=25,b=5,c=10,d=7;NSLog(a%b=%i,a%b);NSLog(a%c=%i,a%c);NSLog(a%d=%i,a%d);NSLog(a/d*d+a%d=%i,a/d*d+a%d);,运算符和表达式,加减乘除:,int a=100;int b=2;int c=25;int d=4;int result;result=a-b;NSLog(a-b=%i,result);result=b*c;NSLog(b*c=%i,result);result=a/c;NSLog(a/c=%i,result);result=a+b*c;NSLog(a+b*c=%i,result);NSLog(a*b+c*d=%i,a*b+c*d);,运算符和表达式,加减乘除:,int a=25;int b=2;float c=25.0;float d=2.0;NSLog(6+a/5*b=%i,6+a/5*b);NSLog(a/b*b=%i,a/b*b);NSLog(c/d*d=%f,c/d*d);NSLog(-a=%i,-a);,运算符和表达式,强制转换:,float f1=123.125,f2;int i1,i2=-150;i1=f1;NSLog(%f,转换为整形为,%i,f1,i1);f1=i2;NSLog(%i,转换为浮点形为,%f,i2,f1);f1=i2/100;NSLog(%i,除以,100,为,%f,i2,f1);f2=i2/100.0;NSLog(%i,除以,100.0,为,%f,i2,f2);f2=(float)i2/100;NSLog(%i,除以,100,转换为浮点形为,%f,i2,f2);,运算符和表达式,自增、自减运算:,int i=8;NSLog(i is%i,i);/8NSLog(+i is%i,+i);/9NSLog(i is%i,i);/9NSLog(-i is%i,-i);/8NSLog(i is%i,i);/8NSLog(i+is%i,i+);/8NSLog(i is%i,i);/9NSLog(i-is%i,i-);/9NSLog(i is%i,i);/8NSLog(-i+is%i,-i+);/-8NSLog(i is%i,i);/9NSLog(-i-is%i,-i-);/-9NSLog(i is%i,i);/8,
展开阅读全文