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. 我的android学习经历33

    在Activity中添加菜单 1.在res目录下新建文件夹menu 右击res,选择new->Folder,Folder name写为menu 2.在新建的menu目录下新建一个xml文件 右击 ...

  2. 8 个必备的PHP功能开发

    做过PHP开发的程序员应该清楚,PHP中有很多内置的功能,掌握了它们,可以帮助你在做PHP开发时更加得心应手,本文将分享8个开发必备的PHP功能,个个都非常实用,希望各位PHP开发者能够掌握.    ...

  3. Hibernate中两种删除用户的方式

    第一种,是比较传统的,先根据主键列进行查询到用户,在进行删除用户 //删除数据 public void deleteStudent(String sno) { init() ; Student qu ...

  4. ITerm2下使用ssh访问Linux

    通常情况下,iTerm2访问远程Linux使用ssh,与Termial基本一样,方法如下: ssh <用户名>@<ip> 然后输入访问的密码即可.当然还有的时候需要指定访问端口 ...

  5. 【HDU5955】Guessing the Dice Roll/马尔科夫

    先从阿里机器学习算法岗网络笔试题说起:甲乙两人进行一个猜硬币的游戏.每个人有一个目标序列,由裁判来抛硬币.谁先得到裁判抛出的一串连续结果,谁赢. 甲的目标序列是正正正,乙的目标序列是反正正.那么如果裁 ...

  6. 程序设计入门——C语言 第2周编程练习 1时间换算(5分)

    1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果 ...

  7. (转) C++中基类和派生类之间的同名函数的重载问题

    下面有关派生类与基类中存在同名函数 fn: class A { public: void fn() {} void fn(int a) {} }; class B : public A { publi ...

  8. DEV:GridControl 筛选复选框 Checked Dropdown更改数据源

    用了DEV网站给的图: 起初,我并不知道这个圈起来的部分叫做Filter Dropdown,这个List里面的数据默认与GridControl中的数据保持一致的. 现在需要对这个FilterDropd ...

  9. Linux服务器

    /*** cloud_sum_server ***/void cloud_sum(int sockfd) { ssize_t n; char buf[MAXLINE]; , b = ; again: ...

  10. JavaScipt的秘密花园

    对象使用和属性 JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和undefined. false.toString(); // 'false'[1, 2, 3].toSt ...