Objective-C学习笔记(二)

来源:互联网 发布:ubuntu挂起后无法唤醒 编辑:程序博客网 时间:2024/05/16 16:04

数据类型和表达式

①数据类型和常量

基本数据类型:int,char,float,double
常量:任何数字、单个字符或者字符串

int float char int即是整数常量,或者称为整型常量,例如:12,32,-345等,前面的负号表示为负数 float又称浮点常量,可以存储包含小数位的值,NSLog中显示浮点值可用转换字符%f,&e或者%g;浮点常量也可用科学计数法表示,例如:1.7e4即表示1.7*10^4。double类型与float类型相似,只是可存储范围要大。计算机中不能精确的表示一些浮点数! char称为字符常量,将字符放入一对单引号中就能得到字符常量,例如’a’、’;’、’2’。特别的:‘\n’(即换行符)是一个合法的字符常量,其中\被认为是特殊符号,Objective-C认为’\n’是单个字符;NSLog中使用%c显示char字符。
②限定词

限定词:long、long long、short、unsigned、signed
  将限定词放在声明之前,那么所声明的变量在某些系统中将具有不同的值域。

类型 实例 NSLog字符 char ‘a’、’\n’ %c short int - %hi、%hx、%ho unsigned short int - %hu、%hx、%ho、%hu int 12、-97、0xef0、o177 %i、%x、%o unsigned int 12u、100U、0xfu %u、%x、%o long int 123l、0x2fl、o28l、-123L %li、%lx、%lo unsigned long int 12UL、100ul、0xffeeul %lu、%lx、%lo long long int 0xe5e4e4e4e4ee4LL、500ll %lli、%llx、%llo unsigned long long int 12ull、0xffeeULL %llu、%llx、%llo float 12.34f、3.1e-5f、0x1.4p10、0x1P-1 %f、%e、%g、%a double 12.34、3.4e-5、0x.1fp3 %f、%e、%g、%a long double 12.34L、4.5e-5l %Lf、%Le、%Lg id nil %p

id类型
  id数据类型可存储任何类型的对象。

③算数表达式
二元运算符:+、-、*、/

  包含多个运算符的表达式求值依据运算符优先级来确定:优先级较高的运算符首先求值,(*、/)>(+、-);若表达式包含优先级相同的运算符,按照从左到右或者从右到左的方向求值,具体按那个方向取决于运算符,即所谓的运算符结合性

一元运算符:-

  一元运算符用于单个值的运算,而二元运算符作用于两个值。
  与其他运算符相比,一元负号运算符具有更高的优先级。

模运算符:%

  NSLog使用%后面的字符来确定如何输出下一个参数,然而,若%后紧跟一个%,那么NSLog会认为你的目的是想显示百分号。

    NSLog(@"a/b*b+b%%b=a");    显示结果是:a/b*b+a%b=a

  模运算%只用于处理整数,模运算的优先级与乘法,除法相等。

整型值与浮点值的相互转换

  1、将浮点数赋值给整型变量,小数部分将被删节,例如:

    int a;    a=12.34;    NSLog(@"a=%i",a);

  将显示:a=12
  2、编写算术表达式需要记住的两点:
   <Ⅰ>只要表达式中两个运算数是整型,该运算就将在整数运算的规则下进行。
   <Ⅱ>对于任何处理两个值得运算,如果其中一个值是浮点变量或常量,那么这一运算将作为浮点运算来处理。

类型转换运算符
f2=(float)a/100;

  类型转换运算符将变量a的值转换成float类型,而且该运算符不会影响变量a的值,它是一元运算符。
  类型转换运算符的优先级比其他所有算术运算符都高,但一元减号和加号除外。
  类型转换运算符主要用来将一般id类型的的对象转换成特定类的对象。

④赋值运算符

将算术运算符和赋值运算符合并在一起:op=

count += 10;

  通常所说的“加号等号”运算符(+=)将运算符右侧的表达式和左侧的表达式想加,将结果保存到运算符左侧的变量中。
  使用赋值运算符的目的有三个:

首先,程序更容易书写
其次,结果表达式更容易阅读
最后,这些运算符可以使程序运行速度更快,因为编译器有时在计算表达式时能产生更少的代码。

原创粉丝点击