1. 学前提醒

  2. 其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言
  3. iOS开发需要学习的主要程序设计语言有:C语言、C++、Objective-C,其中C++、Objective-C都是以C语言为基础,从C语言衍生出来的。因此,C语言是开发iOS软件的基础。
  4. 从现在开始,沉下心来学习传说中的C语言,学习它的语法
  5. 正式学习之前,先提醒一句:学习一门语言的语法是比较枯燥的事,很像是在学习1+1等于几,不可能在学习C语言语法过程中就能马上做出一些好看的iPhone软件界面效果
  6. 大家要沉得住气,所谓苦尽甘来,没有语法的积累,如何能编写出好看的界面呢?
  1. 计算机和软件常识

  1. 计算机运行原理

    1. 硬件基本组成:硬盘、内存、CPU
    2. 各个部件之间的运作协调(右图)
  1. 计算机只能识别0和1

    1. 0和1组成的指令
    2. 0和1组成的数据
  1. 计算机和软件的联系

    1. 软件的基本概念:指令的集合
    2. 软件的安装运行过程
  • 安装在硬盘
  • 运行在内存
  1. 为什么要开发软件:写出能控制计算机的指令
  1. 计算机语言

    1. 一门跟计算机打交道的语言
    2. 方便写出一连串的指令
  1. 计算机语言发展史

  1. 机器语言

    1. 简介:所有代码里面只有0和1,每一条指令称为"机器指令"
    2. 优点
  • 代码能被计算机直接识别,直接对硬件产生作用,程序的执行效率非常高
  • 能直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等
  1. 缺点
  • 程序全是些0和1的指令代码,可读性差,还容易出错

  • 对硬件的依赖性很强,因此不同型号计算机的机器语言又不一样。也就是说,如果2台不同型号的机器想实现一样的功能,需要编写2套完全不同的代码
  • 要熟记所用计算机的全部指令和指令的涵义,指令又多又难记
  1. 使用场合

综上所述,机器语言很难掌握和推广,现在除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了

  1. 汇编语言

    1. 简介:用英文单词等符号代替机器指令
    2. 优点
  • 像机器语言一样,可以直接访问、控制计算机的各种硬件设备
  • 占用内存少,执行速度快
  1. 缺点
  • 不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上就不能运行
  • 符号非常多、难记,即使是完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试
  • 必须对硬件非常了解,开发效率很低,周期长且单调
  1. 使用场合
  • 操作系统内核、驱动程序、单片机程序
  • 软件的加密、解密、破解
  • 病毒的制作、防治
  • 程序的调试、分析
  1. 高级语言

    1. 简介:接近自然语言
    2. 优点
  • 简单、易用、易于理解,语法和结构类似于普通英文
  • 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用太熟悉硬件知识
  • 一个程序还可以在不同的机器上运行,具有可移植性
  1. 缺点
  • 程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上
  1. 种类:C语言、C++、C#、Java、Objective-C等
  1. 三种语言的对比

分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序

  1. 机器语言:简直是天书!!!

10111000 00000001

00000000 00000101

00000001 00000000

  1. 汇编语言:可读性稍微好一点,但是麻烦

MOV AX,1

ADD AX,1

  1. C语言:精简、通俗易懂

1+1

  1. C语言简介

  1. 先学习C语言的原因

    1. OC基于C
    2. OC跟C的思想和语法很多地方不太一样,而且OC能和C混用
    3. C是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,比如C++、C#、Objective-C等
  1. 简史

    1. C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前主要是用汇编语言写的,它奠定了操作系统的基础)
    2. 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,被先后使用到大、中、小、微型主机上,至今还是世界上最流行、使用最广泛的高级程序设计语言之一
    3. C语言是一门面向过程的语言,非面向对象的语言

  1. 特点

    1. 丰富的运算符
    2. 丰富的数据类型
    3. 可以直接操作硬件
    4. 高效的目标代码
    5. 可移植性好
  1. 主要用途

    1. 编写系统软件、图形处理、单片机程序、嵌入式系统开发
    2. 编写游戏外挂
    3. 编写android程序
    4. 编写iOS程序

……

  1. 版本问题

    1. 1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
    2. 1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C
    3. 1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99
    4. 2011年12月8日,ISO正式公布C语言新的国际标准草案:C11

C语言第二节概述的更多相关文章

  1. Python黑帽编程 2.0 第二章概述

    Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...

  2. 第二节:Web前端-ASP.NET之C#基础

    第二节:Web前端-ASP.NET之C#基础 学习ASP.NET,要掌握学习语言,控件等技能, <div style="text-align: center; line-height: ...

  3. centos单用户 救援 运行级别 yum,单用户模式,救援模式,inittab :启动级别 e2fsck wetty mingetty 物理终端 /dev/console 虚拟终端 /dev/tty(0,6) 模拟终端 /dev/pts/# grub-md5-crypt 给grub加密码 initrd 第二节课

    centos单用户 救援 运行级别  yum,单用户模式,救援模式,inittab :启动级别  e2fsck  wetty  mingetty  物理终端 /dev/console  虚拟终端 /d ...

  4. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

  5. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第二节

    原文链接 第二节:第一个内核 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个国家级的实验室进行大型并 ...

  6. android内部培训视频_第二节 布局基础

    第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...

  7. seajs第二节,seajs各模块依赖关系

    index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  8. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  9. VUE2.0实现购物车和地址选配功能学习第二节

    第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...

随机推荐

  1. Tkinter教程之Radiobutton篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811308 #Tkinter教程之Radiobutton篇#Radiobutton为单选按钮, ...

  2. Hadoop在百度的应用

    百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,包括以网络搜索为主的功能性搜索:以贴吧为主的社区搜索:针对区域.行业的垂直搜索.MP3音乐搜索,以及百科等,几乎覆盖了中文网络世界中所有 ...

  3. 【转】CocoaPods的安装以及遇到的坑

    一.CocoaPods是什么? CocoaPods是一个用Ruby写的.负责管理iOS项目中第三方开源库的工具,CocoaPods能让我们集中的.统一管理第三方开源库,为我们节省设置和更新第三方开源库 ...

  4. 【转】关于Xcode的Other Linker Flags

    链接器 首先,要说明一下Other Linker Flags到底是用来干嘛的.说白了,就是ld命令除了默认参数外的其他参数.ld命令实现的是链接器的工作,详细说明可以在终端man ld查看. 如果有人 ...

  5. Linux date命令 - 显示和设置系统日期与时间

    操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许 ...

  6. MAT(2)安装Memory Analyzer

    http://www.eclipse.org/mat/ 两大功能: 1.find memory leaks 2.reduce memory consumption 安装步骤: 1. 打开 eclips ...

  7. iOS类别(Category)

    iOS类别(Category)与扩展(Extension) 苹果的官方文档 Category在iOS开发中使用非常频繁.尤其是在为系统类进行拓展的时候,我们可以不用继承系统类,直接给系统类添加方法,最 ...

  8. UdpClient的Connect究竟做了什么(转)

    最近在写一个音频通信的系统,因为需要还要处理其他事件,所以就自己设计底层的通信协议,用了不少底层的Socket编程(.Net Framework),搞清楚了不少细节问题. 先做一些铺垫工作.音频系统服 ...

  9. SQL 表锁(转)

    其实你可以使用事务处理   比方说在一个字段里面添加一个boolean 的字段当你要处理该字段的时候就 True 哪么别的人都不可以进行操作 如果是False 哪么就可以进行操作--呵可--我是这样的 ...

  10. iPhone Push消息全攻略.1

    要做一个iPhone Push消息的需求,从简单test的开始. 1.先添加一个app ID 2.点击Edit来配置push服务. 3.生成两个证书,一个用于开发,一个用于发布. 4.按下图操作创建一 ...