iOS基礎之OC:C與OC的對比,(NSString,NSLog)

 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;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章