當前位置:首頁 > IT技術(shù) > 移動平臺 > 正文

IOS開發(fā)新手教程(一)-數(shù)據(jù)類型和運算符
2021-09-13 11:32:15

OC語法入門(一) 數(shù)據(jù)類型和運算符

1.1凝視
凝視和其它語言一樣,同意單行 ,多行凝視,一份規(guī)范的代碼里面須要有一些正式的凝視,例如以下凝視:
/*
這是多行
凝視
*/
//這是多行凝視
OC語言臨時不支持嵌套凝視。(swift里面支持這一特性)

1.2標示符和變量

1.2.1分隔符
?1.分號
每個句子以分號結(jié)尾,一行能夠多個語句,一個語句也能夠跨多行。可是變量名不能分開
?? 合法的:
?NSString *name? = @”你好”; int age? = 20;
?NSString * hello = [@”好好”? stringByAppendingString :
?@”我也好好”];
? 不合法的:
? NSString *my
???????????? name =@"張三";
?
?2.花括號
?? {}成對出現(xiàn)。用在函數(shù),if語句,switch語句里面,ect.
?3.方括號
?方括號用在數(shù)組里面,字典里面,還有方法調(diào)用里面。
?如:
?arr[2]=2;
?dict[@"id"] = 2;
?NSString *string = @"哈哈";
?[stirng length];
?
?4.圓括號
?參數(shù)傳遞等等。
?5.空格
?空格。詞與詞之間的切割
?6.圓點
?變量的調(diào)用等
?
?1.1.2標示符規(guī)則
? Object_C語言標示符必須是字母 下劃線 或是美元符號開頭 后面能夠跟字母數(shù)字或是下劃線還有美元符號
? 1.標示符區(qū)分大寫和小寫
? 2.標示符不能為keyword,可是能夠包括keyword
? 3.標示符不能包括空格
? 4.標示符僅僅能有美元$符號,不能有其它符號
?
?1.1.3keyword
?keyword在Xcode里面會呈現(xiàn)特定的顏色。這里舉例經(jīng)常使用的keyword
?auto break case char const continue default do double else enum
?extern float for goto if int long register return short signed sizeof
?static struct switch typedef union unsigned void volatile while
?
?1.2基本數(shù)據(jù)類型
?? 1.2.1.整形
?? 1.2.2.NSLog輸出格式
?? d 以帶符號的十進制輸出
?? o 八進制無符號輸出
?? x 十六進制無符號輸出
?? u 無符號十進制輸出整數(shù)
?? c 以字符輸出,僅僅輸出一個字符
?? s 輸出c風(fēng)格的字符串
?? f 以小數(shù)形式輸出,默認輸出6位數(shù)字
?? e 以指數(shù)形式輸出浮點數(shù),數(shù)字部分默認輸出6位
?? g 自己主動選擇%e或是%f輸出,且不會輸出無意義的0
?? p 以十六進制輸出指針的地址
?? @ 輸出object-c對象
??
?? 1.2.3.字符型
?? 1.經(jīng)常使用的字符型
??  退格符
?? 換行符
?? 回車符
?? 制表符
?? " 雙引號
?? ' 單引號
?? \ 反斜杠
?? 2.注意:在Xcode里面進行開發(fā)的時候,必須使用轉(zhuǎn)義字符否則會出錯。
??
?? 1.2.4浮點型
?? 浮點數(shù)包含十進制的,還有科學(xué)計算法形式的。

如12.34、5E2等等。
?? 注意:用浮點數(shù)除以0.0會得到正無窮或是負無窮。用整數(shù)除以0.0得到的是整數(shù)取值范圍的邊界值。如10/0.0=2147483647
?? -3/0.0 = -2147483647
?? 1.2.5枚舉
?? 枚舉在Object-c開發(fā)中用的比較多。


?? 直接上代碼
?? enum animals{dog=2,cat=1,pig,cow,hen};
?? //定義一個枚舉變量
?? enum animals myCat,myDog;
?? myCat? = cat;
?? myDog = dog;
?? NSLog(@"%d和%d",myCat,dog)//輸出:1和2
??
?? //定義匿名枚舉變量
?? enum {male ,famale}me,you;
?? me = male;
?? you = 1;
??
?? 1.2.6布爾
?? Object-C底層實際是用signed char代表BOOL 而YES和NO的兩個底層值是0和1
?? 系統(tǒng)頭文件例如以下定義:
?? typedef signed char BOOL;
?? #if !defined(YES)
????? #define YES (BOOL)1;
?? #endif
?? #if !defined(YES)
????? #define NO (BOOL)0;
?? #endif
?? //能夠給BOOl型賦值
?? BOOL b1 = 1;
?? BOOL b2 = 100;
??
?? //錯誤
?? BOOL b3 = 256;//這是錯誤的,BOOL是一個僅僅有8位的signed char.越界了
??
?? 1.2.7類型轉(zhuǎn)換
?? 類型轉(zhuǎn)換就如同瓶子里面的水相互倒來倒去。小的倒入大的里面基本沒問題的。

可是大的倒入小的里面就須要慎重了??赡艹鰡栴}。
?? int intValue = 33000;
?? short shortValue = intValue;
?? //肯定溢出了
?? 看溢出過程(沒學(xué)過計算機組成原理的可能看不懂了...)
?? 先學(xué)一下{
??? 原碼是直接將數(shù)值轉(zhuǎn)為二進制,可是計算機以補碼的形式保存全部的整數(shù)。補碼的計算規(guī)則例如以下
??? 正數(shù)的補碼和原碼同樣。負數(shù)的補碼是其反碼加一,反碼是對原碼按位取反。僅僅是最高位保持不變
???
?? }
?? 3000的原碼
?? 00000000000000001000000011101000
?? 截斷為short 僅僅保留 16位
?? 0000000000000000?? 1000000011101000//最高位為1,表明為負數(shù)
??? 減去1得到反碼????? 1000000011100111
??? 除了符號位以外。其它位取反。得到原碼
??? 最后的補碼:1111111100011000
???
??? 1.2.8運算符號(加減乘除這里就忽略)
??? &按位與
??? |按位或
??? ~按位非 ,按位取反
??? ^按位異或
??? <<按位左移
??? >>按位右移
??? 注意:左移n位就好比是乘以2的n次方,右移n位則是除以2的n次方(不能整除的話則是返回除法結(jié)果的最大整數(shù)),
??? 按位運算后之前的操作數(shù)本身是不會改變的。
???
???
?
???
??
??
??
?
?
?

?
?
?
?

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >