001-iOS开发前奏-C语言笔记

学习目标

1.【了解】操作系统

2.【了解】应用软件

3.【了解】操作系统的分类和市场占有份额

4.【了解】iOS操作系统

5.【了解】应用软件开发的分类

6.【了解】UNIX常用命令

7.【掌握】如何开发第一个C语言程序

一、操作系统

我们的计算机是由很多种硬件设备组成的,比如CPU、内存、硬盘、网卡、主板、声卡.......如果计算机只是仅仅有这些硬件设备,这样能不能正常使用?

CPU:负责计算、处理数据

内存:存储数据 (临时)

硬盘:存储数据 (永久)

网卡:接收、发送网络数据

声卡:输出声音信号

..........

但是,是谁让CPU去处理数据?是谁让内存去存储数据?所以计算机要正常使用必须要有一个“老大”(操作系统)来管理、协调计算机各种硬件之间和谐的工作。

计算机的作用:帮助人类做各种各样的事情。如何让计算机帮助我们做事情?我们必须要使用计算机能够明白的语言和方式去和它沟通交流,当它听懂以后,就会按照我们的要求做事情。计算机设备从诞生至今,只能听懂像 010101110010101 这样的二进制语言,也叫做机器语言。

操作系统的作用:是一个直接运行在计算机设备之上的软件,用来负责管理、协调计算机各个硬件的工作。并且将底层的复杂操作封装为了1个相对较为简单的操作(接口)。

二、应用软件

软件就是根据操作系统提供的接口,把这些接口按照一定的顺序组合起来完成1个特定的功能,这就是应用软件。操作系统他本身也是一个软件,不过是一个底层软件,因为它直接和硬件打交道。

计算机硬件设备、操作系统、应用软件之间的关系

最底层的是硬件设备,操作系统是允许运行在硬件设备之上的,应用软件是允许运行在操作系统之上的。

注意

1. 不同的操作系统封装的接口是不一样的。

2. 同1个应用软件,是不可能允许运行在多个操作系统之上的。

开发应用软件的一般步骤

1.  明白操作系统提供了哪些接口。

2.  将这些功能有序的组合起来,完成我们特定的功能。

三、操作系统的分类和市场占有份额

运行在PC(个人电脑)上的操作系统

Windows:90%

Apple:OS X   7%

Linux:3%

......

运行在服务器上的操作系统

Windows Server:20%

Linux:80%

......

运行在移动设备上的操作系统

Google的Android:70%

Apple的iOS:25%

Windows:5%

......

四、iOS操作系统

iOS是一个操作系统,只能运行在iPhone、iPad等苹果公司生产的设备上。OS(Operating System)也就是操作系统的意思,iOS的i字母是苹果命名产品的惯用前缀,并且是小写。iOS系统刚开始是叫iPhone OS,不过到了后来,这个操作系统可以运行在其他的设备之上,所以才改名叫iOS。

iOS开发就是开发运行在iOS系统之上的软件,所以iOS开发是属于移动开发。并且因为iOS是苹果移动设备专用的操作系统,iOS开发人员大家喜欢叫iOS攻城狮,大家觉得程序员听起来比较屌丝。

五、应用软件开发的分类

桌面软件开发:是1个独立的窗口程序。

Web开发:程序的运行要依赖于浏览器,Web应用程序开发,也就是做网站。

移动开发:开发基于移动设备的软件。

开发程序的语言

机器语言:就是01010100101010这样的二进制,能直接被计算机识别。

汇编语言:使用单词和助记符编程的程序,学习难度高,可移植性很差。

高级语言:使用人类的英文单词来编写程序,比如if(xxxx)这样的条件判断语句,学习起来相对来说比较容易。不过高级语言与硬件的直接交互不明显。

高级语言的一般编写步骤

1.使用单词来编写源代码。

2.使用编译器将源代码翻译为机器语言。

3.再将机器语言交给计算机运行。

终端的作用:可以设置系统,可以设置鼠标做不了的事情。并且某些程序的执行,必须要依赖于终端才可以。

六、UNIX常用命令

1

Macbook:~itcast$pwd

可以显示当前终端程序的工作路径。~ 代表当前用户的家目录。直接输入pwd就能看到当前目录

1

Macbook:~itcast$ls

列出当前工作路径下的所有的文件与文件夹。直接输入ls显示当前目录下的目录和文件

1

Macbook:~itcast$ls-l

详细列出当前工作路径下的所有的文件与文件。直接输入ls -l 就是列出当前目录下的目录和文件详细列表

1

Macbook:~itcast$cd

改变工作路径,默认情况下终端的工作路径是当前用户的家目录。例如 cd / 就是切换到根目录

1

Macbook:~itcast$touch

在终端创建文件,例如 touch test.c ,就是在当前目录创建test.c文件

七、如何开发一个C语言的程序

必须要熟悉C语言的语法规范,然后将一些单词、符号根据C语言的语法规范组合起来,再将C代码编译成可执行程序。编译的时候需要用到编译器,编译器实际上就是一个软件,下载下来安装就可以使用了。

编写第一个C程序

编写C程序源文件

创建1个文件,这个文件的后缀名必须是.c,然后打开这个文件,在这个文件之中编写我们的C代码就可以了。

注意: C语言是严格区分大小写的.,不能搞错。除了双引号之间的内容,其他地方的代码必须使用英文输入法来输入(因为符号必须为半角符号,否则出错!)

比如我们在终端创建一个test.c文件

1

Macbook:~itcast$touchtest.c

在文件里写入

#include <stdio.h>

int main(int argc,const char * argv[]){
printf("hello world!\n");
return 0;
}

1

2

3

4

5

6

#include <stdio.h>

intmain(intargc,constchar*argv[]){

printf("hello world!\n");

return0;

}

编译C程序源文件

使用编译器将C源代码编译为二进制代码。

命令:cc -c C源文件的全名称,也就是

1

Macbook:~itcast$cc-ctest.c

如果正常的情况下会生成1个.o的文件.,这个文件我们叫做目标文件,目标文件之中,是C文件的二进制。

注意:在编译的时候, 会先去检查C源文件中的代码是否符合C的语法规范,如果符合规范 才会生成.o 目标文件。否则不会生成目标文件.,并且会提示错误。

链接生成的目标文件

生成的目标文件.o 不能直接交给CPU去执行,一个可以被CPU识别并执行的程序 必须还要一些额外的代码,也就是启动代码。

链接:为目标文件添加启动代码.,以让这个程序可以被CPU识别并执行。

命名:cc 目标文件名

1

Macbook:~itcast$cc test.o

一切正常的话 就会生成1个a.out程序 ,这个程序就可以被CPU识别并执行了。

执行C程序

在终端中输入以下命令即可执行我们编写的C程序了。

1

Macbook:~itcast$./a.out

时间: 2024-10-29 19:06:14

001-iOS开发前奏-C语言笔记的相关文章

iOS开发入门 ? OC语言&#183;笔记五

MRC — 手动管理内存 1.1 内存引用平衡原则 1) 如果使用alloc,new开头,或者是copy(复制一个对象)来创建一个对象,意味着你拥有这个对象的所有权.这个对象的引用计数器初始值为1(也有可能>1). 2) 如果你拥有这个对象的所有权,在不使用此对象时,就有责任向对象发送release消息.(谁创建了对象,谁就有责任release这个对象) 3) 如果并不拥有一个对象的所有权,而想要使用这个对象,为了防止你在使用此对象期间,对象被别人释放掉,需要向对象发送retain消息,以保持对

iOS开发入门 ? OC语言&#183;笔记四

内存管理 : 主要对堆内存进行管理,所谓的管理是指内存的分配(创建)和释放(回收) 内存管理:管理对象的分配和释放,回收那些不需要再使用的对象(内存) 下列行为都会增加一个app的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户体验 1.1 两种管理方式 MRC(Manual Reference Counting):手动引用计数(手动管理内存) 所有对象的内存都需要我们手动管理, 需要程序员自己编写retai

iOS开发系列--C语言之基础知识

概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift 这么看下去还有大量的内容需要持续补充,但是今天我们从最基础的C语言开始,C语言部分我将分成几个章节去说,今天我们简单看一下C的一些基础知识,更高级的内容我将放到后面的文章中. 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): Hello World 运行过程 数据类型 运算符 常用

IOS开发系列--C语言之指针

概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移越来越模糊,感觉指针难以掌握,本文通过简单的例子试图将指针解释清楚,今天的重点有几个方面: 什么是指针 数组和指针 函数指针 什么是指针 存放变量地址的变量我们称之为"指针变量",简单的说变量p中存储的是变量a的地址,那么p就可以称为是指针变量,或者说p指向a.当我们访问a变量的时候其实是程序先根据a取得a对应的地址,再到这个地址对应的存储空间中拿到a的值,这种方式我们称之为"直接

IOS开发系列--C语言之构造类型

概述 在第一节中我们就提到C语言的构造类型,分为:数组.结构体.枚举.共用体,当然前面数组的内容已经说了很多了,这一节将会重点说一下其他三种类型. 结构体 枚举 共用体 结构体 数组中存储的是一系列相同的数据类型,那么如果想让一个变量存储不同的数据类型就要使用结构体,结构体定义类似于C++.C#.Java等高级语言中类的定义,但事实上它们又有着很大的区别.结构体是一种类型,并非一个变量,只是这种类型可以由其他C语言基本类型共同组成. // // main.c // ConstructedType

IOS开发系列--C语言之生存储方式和作用域

概述 基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式.作用范围和销毁时间才可能正确的使用这门语言.今天将着重介绍C语言中变量作用范围.存储方式.生命周期.作用域和可访问性. 变量作用范围 存储方式 可访问性 变量作用范围 在C语言中变量从作用范围包括全局变量和局部变量.全局变量在定义之后所有的函数中均可以使用,只要前面的代码修改了,那么后面的代码中再使用就是修改后的值:局部变量的作用范围一般在一个函数内部(通常在一对大括号{}内),外面的程序无法访问它,

IOS开发系列--C语言之预处理

概述 大家都知道一个C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理操作,将处理完产生的一个新的源文件进行编译.由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运行时进行操作效率高.在C语言中包括三类预处理指令,今天将一一介绍: 宏定义 条件编译 文件包含 宏定义 对于程序中经常用到的一些常量或者简短的函数我们通常使用宏定义来处理,这样做的好处是对于程序中所有的配置我们可以统一在宏定义中进行管理,而且由于宏定义是在程序编译之前进行替换相比定义成全局变量或函数

iOS开发系列--Swift语言

Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了 ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#.Java.Javascript.Python等多种语言的影子.同时在 2015年的WWDC上苹果还宣布Swift的新版本Swift2.0,并宣布稍后Swift即将开源,除了支持iOS.OS X之外还将支持linux. 本文将继续iOS开发系列教程,假设读者已经有了其他语言基础(强烈建

李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像亚洲人和非洲人,大家都有人类的结构:2只手.2只脚.1个头,只是他们外表不太一样,比如肤色.脸型.因此,你掌握好了一门高级语言,再去学习其他高级语言,那是相当快的.而且,很多其他高级语言,比如后面要学习的Objective-C,都是基于C语言.从C语言衍生出来的,好好学习C语言吧,绝对不吃亏. 一.