数据类型和表达式

在 Objective-C 中,任何数字、单个字符或者字符串通常都成为常量。

每一个值,不管是字符、整数还是浮点数字,都有与其对应的值域,这个值域与存储特定类型的值而分配的内存有关。一般来说,语言中没有规定这个量,它通常依赖于所运行的计算机,因此叫做设备或机器相关量。

这也是告诉我们,做开发时,尽量不要去假定数据类型的大小。

id 类型

id 数据类型可以存储任何类型的对象,它是 OC 中十分重要的特性,是多态和动态绑定的基础。

       -(id) newObject: (int) type
      {
        ...
      }

基本数据类型

类型实例常量NSLog 字符
char'a'、'\n'%c
short int-%hi、%hx、%ho
unsigned short int-%hu、%hx、%ho
int12、-97、0xFFE0、0177%i、%x、%o
unsigned int12u、100U、0XFFu%u、%x、%o
long int12L, -2001, 0xffffL%li, %lx, %lo
unsigned long int12UL, 100ul, 0xffeeUL%lu, %lx, %lo
long long int0xe5e5e5e5LL, 500ll%lli, %llx, &llo
unsigned long long int12ull, 0xffeeULL%llu, %llx, %llo
float12.34f, 3.1e-5f, 0x1.5p10, 0x1P-1%f, %e, %g, %a
double12.34、3.1e-5、0x.1p3%f、%e、%g、%a
long double12.34L、3.1e-5l%Lf、$Le、%Lg
idnil%p


    基本数据类型长度

    NSLog(@"The size of an int is: %lu bytes.",sizeof(int));
    NSLog(@"The size of a short int is: %lu bytes.",sizeof(short int));
    NSLog(@"The size of a long int is: %lu bytes.",sizeof(long int));
    NSLog(@"The size of a char is: %lu bytes.",sizeof(char));
    NSLog(@"The size of a float is: %lu bytes.",sizeof(float));
    NSLog(@"The size of a double is: %lu bytes.",sizeof(double));
    NSLog(@"The size of a bool is: %lu bytes.",sizeof(bool));  



算数表达式

在 OC 中,只要将浮点值赋给整形变量,数字的小数部分都将被删除。把整型变量指派给浮点变量不会引起数值的任何改变。

算数表达式的两点规则

  • 当表达式中的两个运算数是整数(),该运算就将在整数运算规则下进行。因此,由运算产生的任何小数部分都将被删除,即便将结果指配给一个浮点变量也是如此。
  • 当表达式中的两个运算数有一个是浮点变量或常量,那么这一运算将作为浮点运算来处理。

与其它语言一样,(float) a 可作为一个强制类型转换。用法如下:

  1. int a = (int) 29.55 + (int) 21.99;  
  2.   
  3. float f = (float) 6 / (float) 4;  
  4.   
  5. id number;  
  6. Fraction *fraction;  
  7. fraction = (Fraction *) number;



赋值运算符

OC 支持 op= 这种语法,op 可以是任何算术运算符,包括 +、-、*、/ 和 %。此外,op 还可以是任何用于移位和屏蔽操作的运算符。

位运算符

符号运算符号运算
&按位与~一次求反
|按位或<<左移位
^按位异或>>右移位




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值