本文目录
零、为什么iOS开发要先学C语言?
一、C语言简史
二、C语言的特点
1.简洁性和紧凑性
2.运算符丰富
3.数据类型丰富
4.结构化的控制语句
5.允许直接访问物理地址,对硬件进行操作
6.生成高质量的目标代码
7.良好的可移植性
三、C语言能做什么?
四、C语言的版本问题
五、C语言语法预览
1.程序结构
2.变量和数据类型
3.控制结构
4.函数
5.运算符和表达式
6.输入和输出
7.注释
8.标识符和关键字
9.预处理器指令
说明:这个C语言专题,是学习iOS开发的基础。万丈高楼平地起,如果你还没有编程经验,建议你,最好是先耐心从最基础的C语言学起。
首先,Objective-C是iOS开发的核心语言,而Objective-C是在C语言的基础上扩展的面向对象编程语言。这意味着,要掌握Objective-C,必须先了解C语言的基础知识。因此,学习C语言是进入Objective-C编程的必要前提。其次,在iOS开发中,深入理解计算机内存、数据结构以及底层实现,对写出高性能代码和进行系统级优化至关重要。另外,许多iOS API调用和数据结构都是基于C语言的。熟悉C语言有助于更好地理解和使用这些API,提高开发效率和代码质量。再次,学习C语言可以帮助我们培养良好的编程思维和习惯,这对于后续学习其他编程语言如Swift和Objective-C也有积极影响。C语言的语法和概念为理解更高级的语言提供了坚实的基础。最后,C语言自1972年发明以来,一直是许多编程语言的基础,包括Objective-C、C++和Swift等。掌握C语言有助于作为开发者的我们,更好地理解这些语言之间的关系和区别,从而在不同的开发环境中游刃有余。所以,我的建议是,要想学习iOS开发,那就得先学习C语言。
下面是基于TIOBE评级的2024年编程语言热门排行榜的一部分:
从C语言诞生至今,它的热度一点也没减过,C语言一直名列前茅。
计C语言的语法设计简洁、紧凑,使用方便且灵活。它只有32个关键字和9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。
计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,包括算术运算、赋值运算、逻辑运算等,使得表达式类型多样化,能够实现其他高级语言中难以实现的运算。
C语言之所以生命力很强大,是因为它拥有丰富的数据类型。C语言的数据类型有:整型(int)、浮点型(float)、字符型(char)、数组类型(int [])、指针类型(void *)、结构体类型(struct)、共用体类型(union)等。众多数据类型中,最强大的是指针,通过指针我们可以直接访问内存地址。指针使用得当的话,不仅可以节省代码量,还可以优化内存管理、提高性能。因此,指针是一个非常重要的概念,必须重视。如果说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言,所以必须要好好学习、琢磨、研究指针。正因为C语言数据类型丰富,运算能力极强,能够实现各种复杂的数据结构运算,因此很多数据库都是用C语言编写的,比如DB2、Oracle等。
C语言具备编写结构化程序所需的基本流程控制语句,如if-else语句、for循环、while循环等,通过函数作为程序模块以实现程序的模块化设计。
计由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元。
C语言生成的目标代码质量高,执行效率高,通常只比汇编程序生成的目标代码效率低10%到20%,因此在系统级编程中尤为重要。对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。
C语言编写的程序具有良好的可移植性,在不同的计算机平台上运行,只需做少量修改即可适应不同的操作系统和硬件环境。
上面说的都算是C语言的优点,不过它肯定是有缺点的:
很多操作系统的底层都是用C语言写的,比如Android、鸿蒙OS、MacOS、Linux、Windows、Unix等。
iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法。
C语言的版本问题是一个复杂且多方面的问题,涉及到编译器版本、C语言标准版本以及代码兼容性等多个方面。
C语言的标准版本有多个,包括C89、C991、C1、C17和C18等。这些标准版本代表了C语言在不同时间点引入的新特性和改进。例如,C99引入了新的数据类型和数学函数,而C11则增加了线程支持和原子操作。
在实际开发中,选择合适的C语言版本取决于项目需求和目标。如果需要编写嵌入式系统或对代码兼容性要求较高,可以选择较早的C89或ANSI C版本;如果希望使用较新的C语言特性,则可以选择C99或C11。
不同编译器对C语言标准的支持可能有所不同。例如,GCC通常支持最新的C语言标准,而一些老旧的编译器可能不支持较新的标准。因此,在使用特定版本的C语言时,需要确保所使用的编译器能够支持该版本。
此外,不同版本的C言可语能会导致一些兼容性问题。例如,某些旧版本的代码可能无法与新版本的编译器和库函数兼容,这需要进行相应的调整和更新。在升级C语言版本时,可能会遇到语法错误、性能问题以及学习成本等挑战。
为了确定当前使用的C语言版本,可以通过查看编译器的输出信息、使用命令行工具或检查源代码中的注释来实现。例如,在Linux系统中,可以使用gcc --version
命令查看GCC的版本信息,并通过-std
选项指定要使用的C语言版本。
·C语言程序通常以预处理指令开始,这些指令告诉编译器在编译代码之前要进行的操作,如包含头文件、定义宏等。
·每个C程序必须包含main()
函数作为入口点,程序从这里始开执行并返回0表示成功。
·变量在使用前必须声明,分为局部变量和全局变量。数据类型包括基本类型(如int
、char
、float
、double
)和派生类型(如数组、指针、结构体、共用)。
·常量是固定值,在程序执行期间不会改变。
·条件语句包括if
、else if
、else
和switch
,用于根据条件执行不同的代码块。
·循环语句包括for
、while
和do while
,用于重复执行代码块直到满足特定条件。
·函数是C语言的核心组成部分,用于封装代码实现重用。函数可以有参数和返回值。
·函数定义需要包含类型说明、声明和复合语句。
·C语言提供了丰富的运算符,包括算术运算符(如+、-、*、/)、比较运算符(如<、>、==)、逻辑运算符(如&&、||)和赋值运算符(如=、+=、-=)。
·表达式有基本表达式、一元表达式、二元表达式、三元表达式、赋值表达式、条件判断表达式、逗号表达式、条件表达式等。
·输入和输出操作使用标准库函数printf
和scanf
。这些函数用于输出内容和读取用户输入。
·注释用于解释代码,编译器会忽略注释内容。C语言支持单行注释(//)和多行注释(/.../)。
·标识符是程序中使用的名称,由字母、数字和下划线组成,不能以数字开头。
·关键字是保留字,具有特殊意义,不能用作标识符或函数名。
·预处理器指令以#
开头,用于宏定义、文件包含和条件编译等操作。