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
//定义结构体
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
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"%@",@"dsadsa¥");
}
return 0;
}