【C语言】01-C语言概述

本文目录​​​​​​​

零、为什么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语言学起。

零、为什么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语言。

一、C语言简史

  • C语言是一种广泛使用的高级编程语言,其历史可以追溯到20世纪70年代初。C语言由美国贝尔实验室的丹尼斯·里奇(Dennis Ritchie)设计,最初是为了开发UNIX操作系统而设计的。C语言的设计灵感主要来自于B语言,但里奇在B语言的基础上进行了许多改进和扩展,使其功能更强大、性能更高。
  • C语言的发展可以分为几个重要阶段。在早期发展阶段(1972-1977年),C语言被用于重新编写UNIX操作系统,使其能够在不同的硬件平台上运行。随后,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇于1978年出版了《The C Programming Language》一书,即著名的K&R C标准,这使得C语言成为一种广泛流传的编程语言。
  • 标准化阶段(1983-1989年)见证了ANSI和ISO组织制定C语言标准,使其成为国际标准化编程语言。1983年,美国国家标准化协会(ANSI)制定了C语言标准,即ANSI C,该标准于1989年被ISO采纳为国际标准。此后,C语言经历了多次更新和修订,包括C89/C90、C99、C11和最新的C23标准,这些标准引入了新特性如结构化编程、指针和内存管理等,使C语言更加现代化和易用。
  • C语言以其简洁紧凑的语法、高效的性能和良好的可移植性而著称。它允许程序员直接操作物理地址,生成高质量的代码,并且适用于多种操作系统和硬件平台。C语言在系统软件、嵌入式系统、操作系统开发等领域具有重要地位,并对后续编程语言如C++、Java等产生了深远影响。
  • C语言不仅是一种高效的编程工具,也是计算机科学教育中的基础课程之一。掌握C语言对于学习数据结构、计算机组成原理以及操作系统等计算机专业课程至关重要。此外,C语言在现代编程环境中仍然保持着不可替代的地位,是许多程序员和开发者的基础技能。

下面是基于TIOBE评级的2024年编程语言热门排行榜的一部分:

【C语言】01-C语言概述_第1张图片

从C语言诞生至今,它的热度一点也没减过,C语言一直名列前茅。

二、C语言的特点

1.简洁性和紧凑性​​

​​​​​​​C语言的语法设计简洁、紧凑,使用方便且灵活。它只有32个关键字和9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。

2.运算符丰富

计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,包括算术运算、赋值运算、逻辑运算等,使得表达式类型多样化,能够实现其他高级语言中难以实现的运算。

3.数据类型丰富

C语言之所以生命力很强大,是因为它拥有丰富的数据类型。C语言的数据类型有:整型(int)、浮点型(float)、字符型(char)、数组类型(int [])、指针类型(void *)、结构体类型(struct)、共用体类型(union)等。众多数据类型中,最强大的是指针,通过指针我们可以直接访问内存地址。指针使用得当的话,不仅可以节省代码量,还可以优化内存管理、提高性能。因此,指针是一个非常重要的概念,必须重视。如果说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言,所以必须要好好学习、琢磨、研究指针。正因为C语言数据类型丰富,运算能力极强,能够实现各种复杂的数据结构运算,因此很多数据库都是用C语言编写的,比如DB2、Oracle等。

4.结构化的控制语句

C语言具备编写结构化程序所需的基本流程控制语句,如if-else语句、for循环、while循环等,通过函数作为程序模块以实现程序的模块化设计。

5.允许直接访问物理地址,对硬件进行操作

计由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元。

6.生成高质量的目标代码

C语言生成的目标代码质量高,执行效率高,通常只比汇编程序生成的目标代码效率低10%到20%,因此在系统级编程中尤为重要。对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。

7.良好的可移植性

C语言编写的程序具有良好的可移植性,在不同的计算机平台上运行,只需做少量修改即可适应不同的操作系统和硬件环境。

上面说的都算是C语言的优点,不过它肯定是有缺点的:

  • 由于C语言是面向过程的,因此它的数据封装性差、安全性低,这就是C语言和其他面向对象语言的区别之一。面向对象语言的特性之一就是数据的封装性。
  • 语法限制不严格,对变量的类型约束不严格,对数组下标越界不做检查等。

三、C语言能做什么?

  • 由于C语言具有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它主要用于系统编程、嵌入式系统开发、桌面应用程序开发、游戏开发、网络编程、科学计算和工程、数据库系统开发、编译器和解释器、安全软件、图形处理、单片机程序等。
  • 很多操作系统的底层都是用C语言写的,比如Android、鸿蒙OS、MacOS、Linux、Windows、Unix等。

  •  iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法。

四、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语言语法预览

1.程序结构

·C语言程序通常以预处理指令开始,这些指令告诉编译器在编译代码之前要进行的操作,如包含头文件、定义宏等。

·每个C程序必须包含main()函数作为入口点,程序从这里始开执行并返回0表示成功。

2.变量和数据类型

·变量在使用前必须声明,分为局部变量和全局变量。数据类型包括基本类型(如intcharfloatdouble)和派生类型(如数组、指针、结构体、共用)。

·常量是固定值,在程序执行期间不会改变。

3.控制结构

·​​​​​​​条件语句包括ifelse ifelseswitch,用于根据条件执行不同的代码块​​​​​​​。​​​​​​​

·循环语句包括forwhiledo while,用于重复执行代码块直到满足特定条件。

4.函数

·​​​​​​​函数是C语言的核心组成部分,用于封装代码实现重用。函数可以有参数和返回值。

·函数定义需要包含类型说明、声明和复合语句。

5.运算符和表达式

·C语言提供了丰富的运算符,包括算术运算符(如+、-、*、/)、比较运算符(如<、>、==)、逻辑运算符(如&&、||)和赋值运算符(如=、+=、-=)。

·表达式有基本表达式、一元表达式、二元表达式、三元表达式、赋值表达式、条件判断表达式、逗号表达式、条件表达式等。

6.输入和输出

·输入和输出操作使用标准库函数printfscanf。这些函数用于输出内容和读取用户输入。

7.注释

·注释用于解释代码,编译器会忽略注释内容。C语言支持单行注释(//)和多行注释(/.../)。

8.标识符和关键字

·​​​​​​​标识符是程序中使用的名称,由字母、数字和下划线组成,不能以数字开头。​​​​​​​

·​​​​​​​关键字是保留字,具有特殊意义,不能用作标识符或函数名。

9.预处理器指令

·​​​​​​​​​​​​​​预处理器指令以#开头,用于宏定义、文件包含和条件编译等操作。

你可能感兴趣的:(零基础学习iOS开发-,C语言,c语言,开发语言,ios,iphone,ipad,objective-c)