C语言的三个基本要素是数据、语句和函数,支持面向过程编程(POP)。

  C语言有数据,数据分为常量和变量,数据的类型分为字符类型和数字类型,数字类型分为整数类型和浮点数类型,复合数据的类型有数组和结构,字符类型的数组(以NULL结尾)就是字符串,变量又有指针变量,指针只是引用,但可以指向动态变量,数组本质上就是指针,变量分为局部变量和全局变量,局部变量又有静态局部变量,全局变量又有静态全局变量。

  C语言有语句,语句本质上就是执行的方向,语句有函数语句、表达式语句和控制语句,函数语句就是函数调用,表达式语句本质上就是函数语句,表达式有运算表达式和赋值表达式,运算分为四则运算、位运算和布尔运算,表达式的执行顺序取决于运算符的优先级和结合性,控制语句有选择语句、循环语句和跳转语句,语句还有预编译语句,预编译语句在编译前进行预处理,预编译语句有导入预编译语句、宏定义预编译语句和条件预编译语句。

  C语言有函数,函数的描述包括函数声明(在.h文件中)和函数定义(在.c文件中),函数有输入和输出,由参数列表和返回值负责。

  ========

  OC语言拓展了C语言的语法,新增了面向对象编程(OOP)。

  OC语言有类和对象,从类到对象的过程叫实例化,分为内存分配和初始化两个步骤,对象分为类对象和实例对象,实例对象的类型可以是某个具体类,也可以是一般对象类型(id类型),id对象的类型确认和方法检查不是在编译时,而是在运行时,类有变量和方法,变量有公有变量、实例变量和私有变量,没有“类变量”,“类变量”可以用静态全局变量代替,方法有类方法和实例方法,存取方法负责实例变量的存取,存取方法分为设值方法和取值方法,类的描述包含接口部分(在.h文件中)和实现部分(在.m文件中),类的声明可以在接口部分、匿名分类部分和实现部分,接口部分声明的是公有变量和公有方法,匿名分类部分声明的是私有变量和私有方法,实现部分声明的是实例变量,实例变量本质上就是私有变量,只是外界有一定的访问权限,属性是实例变量的语法糖,拓展类有子类和分类,子类继承父类在实现部分的变量和方法,可以覆盖父类的方法,也可以添加新的变量和方法,而分类只能添加新的方法,类还可以添加协议,协议指定了必须实现或选择实现的方法列表,子协议可以继承父协议,实现了协议的类叫委托。

C和Objective-C的语法概要的更多相关文章

  1. JavaScript语言精髓(1)之语法概要拾遗(转)

    JavaScript语言精髓(1)之语法概要拾遗   逻辑运算 JavaScript中支持两种逻辑运算,“逻辑或(||)”和“逻辑与(&&)”,他们的使用方法与基本的布尔运算一致: v ...

  2. vue基本语法概要(一)

    先看两种代码,再进行讲解 第一种格式: <template > <div> <div v-for=" item in sites "> < ...

  3. vue语法概要二

    函数 用途 类别 v-html 用于输出html格式的数据 输出 v-bing 用于输出值 输出 v-model 双向绑定 输入和输出 v-if 逻辑判断 分支语句 v-else 同上 分支语句 v- ...

  4. WSO2 ESB XML定义语法(1)

    1.(基于Apache Synapse的WSO2 ESB实现)参考文件位置: http://synapse.apache.org/userguide/config.html 基于Apache Syna ...

  5. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  6. 附录二 C语言标准库

    上章回顾 数组和指针相同与不同 通过指针访问数组和通过数组访问指针 指针在什么时候可以加减运算 函数指针的申明和调用 函数数组和数组函数 git@github.com:Kevin-Dfg/Data-S ...

  7. 前端常用技术概述--Less、typescript与webpack

    前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Less.Sass.Stylus 等,js的超集有Typescript等. ...

  8. 什么是Less、typescript与webpack?

    前端常用技术概述--Less.typescript与webpack 前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Les ...

  9. vim+cscope简易教程

    Cscope具有纯正的Unix血统,它最早是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分.直到2000年4月,这个工具才由SCO公司以BSD lic ...

随机推荐

  1. c++链表归并排序的迭代版本

    之前用js写了个归并排序非递归版,而这一次,c++封装链表的时候也遇到了一个归并排序的接口.邓老师实现了递归版本的归并排序,但是递归的调用函数栈的累积是很占内存空间的.于是乎,那试试在链表结构上实现以 ...

  2. PCL点云库:Kd树

    Kd树按空间划分生成叶子节点,各个叶子节点里存放点数据,其可以按半径搜索或邻区搜索.PCL中的Kd tree的基础数据结构使用了FLANN以便可以快速的进行邻区搜索.FLANN is a librar ...

  3. linux下route命令使用实战

    配置路由表: 第一步: sudo route add -net 172.30.6.0 netmask 255.255.255.0 eth0 执行后可以使用命令route -n查看,查看内容如下: 17 ...

  4. C#连接上sql server 2008 第一次实践

    花了一早上的时间,终于连接上了我的本地数据库,我想应该记一下! 先贴个代码: using System; using System.Collections.Generic; using System. ...

  5. 深入浅出设计模式——迭代器模式(Iterator Pattern)

    模式动机 一个聚合对象,如一个列表(List)或者一个集合(Set),应该提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构.针对不同的需要,可能还要以不同的方式遍历整个聚合对象,但是我 ...

  6. vs2010 vc++ 统一修改所有工程的目录配置

    vs2005和vs2008中都是通过 工具-选项-项目和解决方案-VC++目录,设置 头文件include .库文件lib.可执行文件dll的路径,以便在引用dll动态链接库文件时,可以查找到该文件的 ...

  7. table插件实现

    选择.取消.全选.全部取消.获取行ids /** * Created by lizongqiong on 2016/1/8. */ var $ = require('jquery'); var tab ...

  8. datatables设置解析

    条信息" "sSearch":"搜索" 基本的命令 aaSorting:参数是个数组  [[],[]]单独定义每一列的排序方式 aaSortingFi ...

  9. 调用天气预报webservice

    <script src="jquery.js" type="text/javascript" charset="utf-8">& ...

  10. lodash接触:string-capitalize

    1.capitalize : _.capitalize([string='']) Capitalizes the first character of string. 参数 [string=''] ( ...