日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【iOS 开发】Objective - C 语法 之 类型转换

發(fā)布時(shí)間:2025/6/17 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【iOS 开发】Objective - C 语法 之 类型转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者 : 萬境絕塵 (octopus_truth@163.com)

轉(zhuǎn)載請(qǐng)注明出處 :?http://blog.csdn.net/shulianghan/article/details/39135079

?

?

1. 自動(dòng)類型轉(zhuǎn)換

?

自動(dòng)類型轉(zhuǎn)換 : 將一個(gè)基本類型變量 賦值給另外一個(gè)基本類型變量就會(huì)出現(xiàn)基本類型轉(zhuǎn)換;

-- 整型 -> 浮點(diǎn)型 : 除了類型轉(zhuǎn)換為浮點(diǎn)型之外, 不會(huì)有太大變化;

-- 浮點(diǎn)型 -> 整型 : 類型轉(zhuǎn)為整型, 小數(shù)部分被舍棄;

-- 長(zhǎng)整形 -> 整型 : 取值范圍變小, 可能發(fā)生溢出;

?

示例 :?

-- Object-C 代碼 :?

?

/*************************************************************************> File Name: 09_typeAutoConversion.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 一 9/ 8 11:18:53 2014************************************************************************/ #import <Foundation/Foundation.h>int main(int argc, char **argv){@autoreleasepool{/* 定義 int 類型變量 */int a = 38;/* 將 int 類型變量轉(zhuǎn)換為 float, 數(shù)值沒有變化, 只是類型發(fā)生了變化 */float b = a;/* 打印int -> float 結(jié)果, 打印 : 38 */NSLog(@"b = %g", b);/* 定義 short 類型變量 */short c = 38;/* 將 short 類型變量賦值給 char 變量, short 自動(dòng)轉(zhuǎn)化為 char 類型 */char d = c;/* 打印 short -> char 類型, 打印 : & */NSLog(@"d = %c", d);double e = 38.3838;/* 將 double 類型轉(zhuǎn)為 int 類型, 小數(shù)部分自動(dòng)省略 */int f = e;/* 打印 double -> int 類型, 打印 : 38 */NSLog(@"f = %d", f);/* 將 double 類型轉(zhuǎn)為char 類型, 小數(shù)部分自動(dòng)省略, 如果數(shù)值過大, 整數(shù)部分會(huì)溢出 */char g = e;/* 打印 double -> char, 打印 : & */NSLog(@"g = %c", g);int h = 40000;/* 將 int 類型轉(zhuǎn)為 short 類型, 如果數(shù)值過大, 可能會(huì)溢出 */short i = h;/* 打印 int -> short, 溢出 打印 : -25536 */NSLog(@"i = %d", i);}}

?

-- 編譯運(yùn)行 :?

?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 09_typeAutoConversion.m octopus-2:oc octopus$ ./a.out 2014-09-08 13:08:41.250 a.out[1345:507] b = 38 2014-09-08 13:08:41.252 a.out[1345:507] d = & 2014-09-08 13:08:41.252 a.out[1345:507] f = 38 2014-09-08 13:08:41.253 a.out[1345:507] g = & 2014-09-08 13:08:41.253 a.out[1345:507] i = -25536 octopus-2:oc octopus$

?

?

?

?

?

?

2. 強(qiáng)制類型轉(zhuǎn)換

?

強(qiáng)制類型轉(zhuǎn)換 : 通過 (typeName) 可以強(qiáng)行指定一個(gè)變量的類型;

?

強(qiáng)制轉(zhuǎn)換示例 :?

-- Object-C 代碼 :?

?

/*************************************************************************> File Name: 09_typeConversion.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 一 9/ 8 13:27:52 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {int a = 38;int b = 100;/* int 類型 與 int 類型相除 還是 int 類型, 結(jié)果是 0 */float c = a / b;/* 先將 a 轉(zhuǎn)為 float 類型, 再進(jìn)行計(jì)算, 得出的結(jié)果就是 float 類型 */float d = (float)a / b;/* 將 float 類型轉(zhuǎn)為 int 類型后再計(jì)算, 結(jié)果是 39 */int e = (int)38.3838 + (int)1.3838;NSLog(@"c = %g, d = %g, e = %d", c, d, e );} }

?

?

-- 編譯運(yùn)行 :?

?

octopus-2:oc octopus$ ./a.out 2014-09-08 13:31:44.361 a.out[1391:507] c = 0, d = 0.38, e = 39 octopus-2:oc octopus$

?

?

?

?

?

3. 類型自動(dòng)提升

?

表達(dá)式數(shù)據(jù)類型自動(dòng)提升規(guī)則 :

-- 整型自動(dòng)提升 : 所有的表達(dá)式中得 short 和 char 類型的數(shù)據(jù)都會(huì)被提升為 int 類型;?

-- 提升至最高類型 : 算數(shù)表達(dá)式的數(shù)據(jù)類型自動(dòng)提高到表達(dá)式中等級(jí)最高的數(shù)據(jù)類型;

-- 類型等級(jí)規(guī)則 : 從低到高 : short -> int -> long -> longlong -> float -> double -> long double;

?

代碼示例 :?

-- Object-C 代碼 :?

?

/*************************************************************************> File Name: 09_typeAutoPromote.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 一 9/ 8 13:44:53 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {short a = 37;/* a - 2 表達(dá)式中, a 會(huì)自動(dòng)提升為 int 類型 */NSLog(@"計(jì)算 a - 2 的數(shù)據(jù)類型大小 : %ld", sizeof(a - 2));/* 整個(gè)表達(dá)式的數(shù)據(jù)類型轉(zhuǎn)換為 double 類型 */double b = a / 2.0;NSLog(@"b = %g", b);} }


-- 編譯執(zhí)行 : ?

?

?

octopus-2:oc octopus$ ./a.out 2014-09-08 13:50:27.502 a.out[1418:507] 計(jì)算 a - 2 的數(shù)據(jù)類型大小 : 4 2014-09-08 13:50:27.505 a.out[1418:507] b = 18.5 octopus-2:oc octopus$

?

?

?

?

?

?

作者?:?萬境絕塵?(octopus_truth@163.com)

轉(zhuǎn)載請(qǐng)注明出處?:?http://blog.csdn.net/shulianghan/article/details/39135079

?

總結(jié)

以上是生活随笔為你收集整理的【iOS 开发】Objective - C 语法 之 类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。