C和OC的對比:
文件對比:
C OC
頭文件:.h .h
源文件:.c .m
目標文件:.o .o
數據類型:
C:基本類型、數組、結構體、枚舉等等
OC:除了C語言的類型外,還有自己的類型,NSString
換句話說,OC有C語言的所有類型 int double 數組 結構體 在OC中也統統能用
還增加了BOOL類型,C語言中怎麼表示真和假?0爲假,非0爲真。
變量常量:簡而言之也是C語言中的變量和常量的概念在OC中通用
分支語句:
C和OC中的分支語句完全,也就是說if和switch語句都能在OC中用
循環語句:
OC中可以用C所有的循環語句(while,do-while,for)
但是OC還多了一種增強型的for語句-----forin
函數:
OC中完全可以用函數,概念一樣,OC中多了方法的概念
結構體、指針、枚舉:統統都可以用在OC中
OC增加了類的類型,和類的對象
總結:OC中可以用所有C語言中的東西,只不過又新增了一些自己的東西
#import <Foundation/Foundation.h>
//定義結構體
typedef struct {
char str[50];
int age;
}Person;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//OC中的數組
NSArray *arr = @[ @"老周",@"真的",@"very帥" ];
//C語言的for
// for (int i =0; i<3;i++ ) {
//
// NSLog(@"%@",arr[i]);
// }
//OC中增強型的for-----forin
for (NSString* str in arr) {
NSLog(@"%@",str);
}
}
return 0;
}
NSString類型 是OC中的字符串類型!
int類型
int num = 10;
NSString類型也是
NSString *str = @“小明,你好”;
OC中字符串是:@"字符串"
都是以@符號開頭的
@"字符串"方便我們區分是OC字符串
OC字符串類型不能賦值爲C語言字符串
NSString *str = “小明123";
NSLog:輸出一句話
printf("格式化控制符",值列表);
NSLog,也可以加格式化控制符!
C語言格式化控制符
%d:輸出int類型
%f:輸出float類型
%c:輸出char類型
%s:輸出C語言字符串
%ld:輸出long類型
%lu:輸出unsigned long類型
…………:
NSLog完全可以輸出以上的格式化控制符
還增加了
%@:輸出對象類型!(OC中的字符串也是一個對象),注意不能輸出C語言字符串
NSLog與printf的區別:
換行區別:
NSLog自帶換行
printf沒有自帶換行,必須手動加\n
內容區別:
NSLog默認打印出項目名字和打印的時間
printf木有
輸出內容區別:
NSLog可以輸出%@(NSLog可以輸出C語言中的所有格式化控制符,但是自己還新增了一些)
printf不可以輸出%@
注意:
NSLog可以打印%s,可以!但是有條件!不能打印包含帶有中文(中文符號也不行)的C語言字符串
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"%@",@"dsadsa¥");
}
return 0;
}