iOS基础之OC:C与OC的对比,(NSString,NSLog)
2015-12-12 21:22
363 查看
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;
}
文件对比:
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;
}
相关文章推荐
- 蓝欧iOS3G学院OC课后作业练习----实现中等难度通讯录
- iOS开发54-使用Github和Source Tree进行团队开发
- 共享与通知
- ios获得当前系统语言
- iOS NSUserDefaults本地存储
- IOS设计模式:MVC模式
- iOS开发 NSDate 获取系统当前时间
- iOS应用新版上线流程
- ios界面尺寸
- iOS之block使用小结、在arc中使用block、如何防止循环引用
- IOS设计模式-备忘录模式
- cocoaPods的安装
- iOS 验证码倒计时时button一闪一闪的
- iOS开发之MOVE设计模式
- IOS-45-登录页面相关设置之手机号(只显示数字键盘、只允许输入数字、只允许输11位数)
- iOS开发之MVVM设计模式
- ios—跑马灯.开始暂停
- iOS 生成百度推送
- iOS and Android Programming with Go
- iOS 代码限制textField的输入长度并且删除按钮还得有效