C和Objective-C的语法概要
C语言的三个基本要素是数据、语句和函数,支持面向过程编程(POP)。
C语言有数据,数据分为常量和变量,数据的类型分为字符类型和数字类型,数字类型分为整数类型和浮点数类型,复合数据的类型有数组和结构,字符类型的数组(以NULL结尾)就是字符串,变量又有指针变量,指针只是引用,但可以指向动态变量,数组本质上就是指针,变量分为局部变量和全局变量,局部变量又有静态局部变量,全局变量又有静态全局变量。
C语言有语句,语句本质上就是执行的方向,语句有函数语句、表达式语句和控制语句,函数语句就是函数调用,表达式语句本质上就是函数语句,表达式有运算表达式和赋值表达式,运算分为四则运算、位运算和布尔运算,表达式的执行顺序取决于运算符的优先级和结合性,控制语句有选择语句、循环语句和跳转语句,语句还有预编译语句,预编译语句在编译前进行预处理,预编译语句有导入预编译语句、宏定义预编译语句和条件预编译语句。
C语言有函数,函数的描述包括函数声明(在.h文件中)和函数定义(在.c文件中),函数有输入和输出,由参数列表和返回值负责。
========
OC语言拓展了C语言的语法,新增了面向对象编程(OOP)。
OC语言有类和对象,从类到对象的过程叫实例化,分为内存分配和初始化两个步骤,对象分为类对象和实例对象,实例对象的类型可以是某个具体类,也可以是一般对象类型(id类型),id对象的类型确认和方法检查不是在编译时,而是在运行时,类有变量和方法,变量有公有变量、实例变量和私有变量,没有“类变量”,“类变量”可以用静态全局变量代替,方法有类方法和实例方法,存取方法负责实例变量的存取,存取方法分为设值方法和取值方法,类的描述包含接口部分(在.h文件中)和实现部分(在.m文件中),类的声明可以在接口部分、匿名分类部分和实现部分,接口部分声明的是公有变量和公有方法,匿名分类部分声明的是私有变量和私有方法,实现部分声明的是实例变量,实例变量本质上就是私有变量,只是外界有一定的访问权限,属性是实例变量的语法糖,拓展类有子类和分类,子类继承父类在实现部分的变量和方法,可以覆盖父类的方法,也可以添加新的变量和方法,而分类只能添加新的方法,类还可以添加协议,协议指定了必须实现或选择实现的方法列表,子协议可以继承父协议,实现了协议的类叫委托。
C和Objective-C的语法概要的更多相关文章
- JavaScript语言精髓(1)之语法概要拾遗(转)
JavaScript语言精髓(1)之语法概要拾遗 逻辑运算 JavaScript中支持两种逻辑运算,“逻辑或(||)”和“逻辑与(&&)”,他们的使用方法与基本的布尔运算一致: v ...
- vue基本语法概要(一)
先看两种代码,再进行讲解 第一种格式: <template > <div> <div v-for=" item in sites "> < ...
- vue语法概要二
函数 用途 类别 v-html 用于输出html格式的数据 输出 v-bing 用于输出值 输出 v-model 双向绑定 输入和输出 v-if 逻辑判断 分支语句 v-else 同上 分支语句 v- ...
- WSO2 ESB XML定义语法(1)
1.(基于Apache Synapse的WSO2 ESB实现)参考文件位置: http://synapse.apache.org/userguide/config.html 基于Apache Syna ...
- objective-c基础教程——学习小结
objective-c基础教程——学习小结 提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...
- 附录二 C语言标准库
上章回顾 数组和指针相同与不同 通过指针访问数组和通过数组访问指针 指针在什么时候可以加减运算 函数指针的申明和调用 函数数组和数组函数 git@github.com:Kevin-Dfg/Data-S ...
- 前端常用技术概述--Less、typescript与webpack
前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Less.Sass.Stylus 等,js的超集有Typescript等. ...
- 什么是Less、typescript与webpack?
前端常用技术概述--Less.typescript与webpack 前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Les ...
- vim+cscope简易教程
Cscope具有纯正的Unix血统,它最早是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分.直到2000年4月,这个工具才由SCO公司以BSD lic ...
随机推荐
- jquery.validate使用 - 自定义验证方法
自定义jquery-validate的验证行为 1: 自定义表单提交 设置submitHandler来自定义表单提交动作 $(".selector").validate({ ...
- mac 启动apache + php
一.启动Apache 在终端里输入命令,启动 Apache: sudo apachectl start 关闭 Apache: sudo apachectl stop 重启 Apache:sudo ap ...
- Delphi TDatabase 组件
TDatabase 组件是一个能与远程数据库通过 BDE 建立连接的组件,可使本地端的程序获取远程的数据. 通过 TDatabase 组件的使用,可以减少与远程数据库连接的窗口,当远程数据库的设置变动 ...
- Knockout学习笔记之二($root,$parent及$data的区别)
以下是我从Google上找到的一个例子,非常生动形象,我修改了部分代码,具体内容如下: 对于$root 与$parent的区别: $root refers to the view model appl ...
- ImportError: No module named MySQLdb
ImportError: No module named MySQLdb 该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起. python3.5下的解决方法ubuntu系 ...
- linux下mysql函数的详细案列
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...
- Java数据库操作
一.JDBC 1.JDBC Java数据库连接,用于Java程序中实现数据库操作功能,java.sql包中提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口及类. 2. ...
- Canvas 画布小案例
<script> window.onload = function () { draw('canvas1'); draw('canvas2'); draw('canvas3'); draw ...
- 如何使CSS3中的animation动画当每滑到一屏时每次都运行
这个我还没用过,但感觉以后会用到,就随手摘抄一下啦<div id="a1"></div> <div id="a2">< ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)
文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们 ...