一起Talk IOS吧(第七回 OC中基本类型的代码演示)

看官们,我们在第二回中介绍了OC的基本类型,有看官说介绍的不够详细,因此我使用图形的方式对所有基本类型做了总结,请参考以下图片中的内容。

在这里插入图片描述

看完类型的总结后,我们将通过具体的代码来演示如何使用这些类型。

  1 #import <Foundation/Foundation.h>
  2 
  3 int main ()
  4 {
  5     int intValue = 3;
  6     short int shortValue = 4;
  7     long int longValue = 5;
  8         
  9     NSLog(@"int: %d, short: %d, long: %ld",intValue,shortValue,longValue);
 10     NSLog(@"size int: %lu, short: %lu, long: %lu",sizeof(intValue),sizeof(shortValue),sizeof(longValue));
 11 
 12     float floatValue = 3.1;
 13     double doubleValue = 5.3;
 14     NSLog(@"float: %.2f, double: %.2f",floatValue,doubleValue);
 15     NSLog(@"size float: %lu, double: %lu",sizeof(floatValue),sizeof(doubleValue));
 16     
 17     char charValue = 'a';
 18     NSLog(@"char: %c,%i, size: %lu",charValue,charValue,sizeof(charValue));
 19     
 20     bool boolValue = YES;
 21     if(boolValue)  
 22         NSLog(@"bool value is true");
 23     else
 24         NSLog(@"bool value is false");
 25         
 26     intValue = (int)floatValue;
 27     NSLog(@"change value: %i",intValue);
 28     
 29     return 0;
 30 } 

在代码中我们首先定义了int,short,long三种类型的整型变量,float和double两种浮点类型变量,char类型变量以及bool类型变量。然后通过终端输出这些变量相应的值,同时我们还输出了这三种类型变量在内存占用的空间。其中int类型占用4个字节,short类型占用2个字节,long类型占用8个字节,float类型占用4个字节,double类型占用8个字节,char类型占用1个字节.OC在语法上没有指定每种类型占用的内存空间大小,这个与具体的机器的有关。不同类型的机器上会有不同的结果,建议大家动手试试,看看你所用的电脑如何给这些不同类型的变量分配字节空间。

有看官说:这些类型我拿来使用就可以了,不需要知道它占用多少空间。这位看官的理解不准确,因为知道类型所占用空间的大小后就能知道类型的最大值和最小值,而且也容易理解不同类型之间的赋值和转换引起的溢出。比如int类型占用4个字节,那么它的最大值就是2的31次方减1,如果给它赋值时超过了这个值,那么就会发生溢出。

在代码中我们使用圆括号把浮点型强制转换成了整型,这里只演示如何进行强制类型转换,其实我们不使用圆括号也会发生类型转换,这种转换是自动的。在实际编写程序时,我们不推荐类型转换,如果一定要进行类型转换,那么需要注意类型的取值范围,不然发生溢出后会导致运算结果出错。

关于整型可以使用unsigned来修饰,修饰后表示无符号整型,就是说整型变量的值都是正数和0.这个容易理解,我们在代码中就不演示了。

char也可以输出为字符或者整型数值,对于像引号这样特殊的字符,需要使用转义”\”符输出,这点和C语言一样,我们也不在程序中演示了。有看官说,感觉什么都和C语言相同呢。这种感觉是对的,毕竟OC是兼容C语言的,不过不同点还是存在的,比如布尔类型变量的值,在OC中变成了YES和NO。

编译上面的程序然后运行,可以看到以下运行结果:

2020-10-25 15:42:30.850 ex.out[1202:66929] int: 3, short: 4, long: 5
2020-10-25 15:42:30.850 ex.out[1202:66929] size int: 4, short: 2, long: 8
2020-10-25 15:42:30.850 ex.out[1202:66929] float: 3.10, double: 5.30
2020-10-25 15:42:30.850 ex.out[1202:66929] size float: 4, double: 8
2020-10-25 15:42:30.850 ex.out[1202:66929] char: a,97, size: 1
2020-10-25 15:42:30.850 ex.out[1202:66929] bool value is true
2020-10-25 15:42:30.850 ex.out[1202:66929] change value: 3

看官们,我们在本章回中通过代码演示了第一个OC中变量基本类型的用法,最后我们对文章中的知识做一个概述性总结:

  • 1.OC中的变量基本类型分为:整型,浮点型,字符型和布尔型,详细的内容可以看图片中的总结;
  • 2.OC中类型占用的空间与机器有关,不同机器会有不同的表现;
  • 3.不同类型之间的变量可以相互转换,转换可以自动进行,也可以强制进行,不过要注意变量取值范围,以免发生溢出;
  • 4.OC兼容C,除去布尔类型的值外,大部分类型的用法都相同。

看官们,欲知后事如何且听下回分解!

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页