1.OC和C语言的对比

Objective-C

==================

由于OC语言是基于C语言基础添加了面向对象的语法衍生而来,所以OC完全兼容C语言。


源文件对比

  • C中的源文件主要是.h和.c文件,其中.h文件是C语言的头文件,用来存放函数声明,.c文件是C语言源文件,用来实现头文件中声明的方法

  • OC中的源文件主要是.h和.m/.mm,其中.h是头文件,主要包含类/方法/属性的声明,.m/.mm是类的实现文件,参与编译的文件,用来实现类中声明的方法

关键字

  • 由于OC是基于C语言的,所以C语言中的关键字OC中都能使用
  • 另外苹果为了区分OC和C语言的关键字,OC中的大部分关键字都是以@开头的,如下图

数据类型对比

OC中除了C语言中的数据类型外,额外扩充了独有的数据类型,如下表

名称 类型说明
BOOL 类似于C语言中的逻辑值(0和1),只有两个取值,真和假
NSObject * OC中的对象类型,即指向对象的指针(指针类型和对象类型一致)
id 动态数据类型,万能指针(即可以执行任何对象)
nil 类似于C语言的NULL,空值类型
SEL 选择器类型,用来封装方法
block 代码块数据类型,类似于C语言中指向函数的指针

流程控制语句对比

  • OC中的流程控制语句和C语言中的基本类似,只是在for循环上扩充了一个增强的语句

if/if else语句
switch语句
while/do while语句
for语句
break/continue关键字
OC for增强语句(可以用来快速遍历数组或集合)

for(NSString *str in NSArray *arr ){<执行语句>
}

函数和方法对比

  • C语言函数

    • C函数声明: int sum(int value1,value2);
    • C函数实现:
 int sum(int value1,int value2){return value1 + value2      }
  • OC中的方法

    • OC中的方法只能写在类中,而C语言的函数可以写在任何地方
    • OC 方法声明:-(int)sumValue:(int)value1 andValue:(int)value2;
    • OC 方法实现:
-(int)sumValue:(int)value1 andValue:(int)value2{return value1 + value2;
}

OC基础语法-1.OC和C语言的对比相关推荐

  1. iOS战记 ----OC基础语法之战(一)

    iOS战记  ----OC基础语法之战(一) 一个机械设计者的转行之战. 火车一个年轻的程序员和一个项目经理登上了一列在山里行驶的火车,他们发现列车上几乎都坐满了,只有两个在一起的空位,这个空位的对面 ...

  2. GO 语言基础语法一 (快速入门 Go 语言)

    Go语言基础语法 一. golang 标识符,关键字,命名规则 二. golang 变量 三. golang 常量 四. golang 数据类型 五. golang 布尔类型 六. golang 数字 ...

  3. oc总结 --oc基础语法相关知识

    m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...

  4. OC基础语法(1)—类和对象OC基础语法…

    01-第一个OC程序 //  main.m #include #import #import "One.h" #import "Two.h" // OC和C语言 ...

  5. Java基础语法 第2节 Java语言基本语法

    一.标识符和关键字 1.标识符 1)java中标识符用来为程序的白能量.常量.方法.类.接口和包名命名,标识符由字母.数字.下划线.美元符号组成,且第一个字符不能是数字: 2)标志符命名规则:见名知意 ...

  6. 编程初学者入门训练-基础语法(15题|C语言)

    文章目录 简单输出 BC1 Hello Nowcoder BC2 小飞机 基本类型 BC3 牛牛学说话之-整数 BC4 牛牛学说话之-浮点数 BC5 牛牛学说话之-字符 BC6 牛牛的第二个整数 BC ...

  7. 黑马程序员——0C语言——基础语法

    ---Java培训.Android培训.iOS培训..Net培训.期待与您交流! --- 一.OC基础语法 1.关键字 OC的关键字基本上都是以@开头的:@interface.@implementat ...

  8. python基础语法--python语言及其应用

    python基础语法 python引言 python python语言是一种高级动态.完全面向对象的语言. python中函数.模块.数字.字符串都是对象. python完全支持继承.重载.派生.多继 ...

  9. OC语言基础一:OC方法调用机制,new方法实现原理

    文章目录 OC方法调用机制 new方法实现原理 野指针 内存溢出 内存泄漏 alloc和init OC方法调用机制 OC有两种方法 Person *person=[Person new]; [pers ...

最新文章

  1. 怎么用计算机不会卡,电脑卡顿不流畅怎么解决?
  2. 简历空空,如何编写一个面试时能拿的出手的真实项目?
  3. Java系列:关于Java中的桥接方法
  4. Java举例include_Java StringUtils.getFilenameExtension方法代码示例
  5. 实时获取ccd图像_四元数数控:CCD视觉检测定位系统在玻璃瓶缺陷的检测
  6. lnmp 一键安装包部署ThinkPHP5
  7. 虚拟机VMware里 windows server 2003 扩充C盘方法
  8. SpringBoot实现的简单停车位管理系统
  9. Python Day10 MySQL 01
  10. C#——已知两点及半径,求圆心坐标
  11. 数字电路-逻辑函数化简
  12. 计算机系统应用软件的核心是什么,计算机系统软件的核心是什么?
  13. 软件测试之因果图法(P24——P26)
  14. 用js来判断用户端浏览器(判断QQ浏览器、谷歌浏览器)方法
  15. AI产品经理的工作内容及面试准备
  16. java服务器下载jpg等静态资源方法
  17. 华为鸿蒙与鸿蒙网,华为鸿蒙专题研究报告:鸿蒙生态加速,国产软件迎长期机遇...
  18. 哪些进销存软件既好用又免费?
  19. vue使用js遍历数组和对象
  20. Android攒了一个月的面试题及解答,offer拿到手软

热门文章

  1. 2022年湖南省自考考试学前儿童发展练习题及答案
  2. 神经网络可以用来预测吗,神经网络预测股票价格
  3. Android手机量身高,超级实用! 用小米手机量身高?MIUI 8隐藏功能大揭秘
  4. Python爬虫学习 7 —— 正则表达式
  5. Anaconda3安装教程(详细)
  6. 秒杀项目学习笔记-异常处理
  7. Machine Learning Pre-Basics
  8. 博士复试复旦计算机,我考上复旦大学博士之路 复旦考博复试通过记
  9. 天津理工大学c语言ex6,天津理工大学C#试验一
  10. 采样频率和带宽的关系_ADI公司AD7380系列SAR ADC的片内过采样