天天看點

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;

}