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

fgcs 2021-08-16 原文


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

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略

为什么iOS开发要先学C语言?

iOS开发的核心语言是Objective-C,Objective-C是在C语言的基础加了一层面向对象的语法。为了能够更好地掌握Objective-C,我们可以先学习C语言,然后在C语言的基础上升华到Objective-C。当然,你也可以直接学习Objective-C,只是我个人建议先学习C语言,再学习Objective-C,最后学习iOS开发,这样效果会好一点。

 

一、C语言简史

  • C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前是用汇编写的)
  • 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,至今还是世界上最流行、使用最广泛的高级程序设计语言之一
  • C语言是一门面向过程的语言,非面向对象的语言

下面是2013年3月份的编程语言热门排行榜

从C语言诞生至今,它的热度一点也没减过,前两名基本上都是Java和C

 

二、C语言的特点

1.丰富的运算符

计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,计算类型及其丰富,其中包括了最基本的加减乘除运算。

2.丰富的数据类型

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

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

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

4.高效率的目标代码

对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。

5.可移植性好

在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

 

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

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

 

三、C语言能做什么?

  • 由于C语言具有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它适于编写系统软件、图形处理、单片机程序、嵌入式系统开发甚至是用于科研
  • 很多操作系统的底层都是用C语言写的,比如android
  •  iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法

 

四、C语言的版本问题

从UNIX操作系统的成功后,C语言得到了广泛地应用,从大型主机到小型微机,都有C语言活跃的身影,也衍生了很多个版本的C语言。长期以往,C语言将可能成为一门有多个变种、松散的语言。一门正式的语言,肯定要有个标准才行,不然就乱套了。为了改变这种局面,1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作。1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C

 

五、C语言语法预览

发表于
2015-08-20 10:39 
fgcs2015 
阅读(94
评论(0
编辑 
收藏 
举报

 

版权声明:本文为fgcs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fgcs/p/4744395.html

【C语言】01-C语言概述 - fgcs2015的更多相关文章

  1. Kafka的参数调优 – Justinyangbigdata

    Kafka的参数调优 2018-04-19 18:01  Justinyangbigdata  阅读(4495 […]...

  2. 一个小时内学习SQLite数据库 – gisoracle

    View Post 一个小时内学习SQLite数据库 一个小时内学习SQLite数据库 2012-05-11 […]...

  3. EFK教程(5) – ES集群开启用户认证

    基于ES内置及自定义用户实现kibana和filebeat的认证 作者:“发颠的小狼”,欢迎转载 目录 ▪ 用 […]...

  4. Android ANR原理分析 – Sun‘刺眼的博客

    Android ANR原理分析 一、概述 ANR(Application Not responding),是指 […]...

  5. 初学者学习Javascript很吃力怎么办?到底该如何学习Js? – 狙击手+

    初学者学习Javascript很吃力怎么办?到底该如何学习Js? 思维导图的全面汇总,欢迎收藏   Js给初学 […]...

  6. JAVA 分布式 – 分布式介绍 – Bertha然

    JAVA 分布式 – 分布式介绍 什么是分布式系统?   要理解分布式系统,主要需要明白一下2个方 […]...

  7. IE7.0主页总是 http://go.microsoft.com/fwlink/?LinkId=74005问题 – 没有空气

    IE7.0主页总是 http://go.microsoft.com/fwlink/?LinkId=74005问 […]...

  8. [GeekBand ] 利用 pass by reference -to -const 编写高效规范的 c++代码

        本文参考资料 :  GeekBand 侯捷老师,学习笔记                       […]...

随机推荐

  1. IPv6系列-彻底弄明白有状态与无状态配置IPv6地址

    深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式 小慢哥的原创文章, […]...

  2. Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览

    最近研究了一下android摄像头开发相关的技术,做了个CamCap程序,实现了在不预览的情况下,获取到摄像头 […]...

  3. 新型前端开发工程师的三个境界 后端开发工程师如何快速转前端

    本文针对个人对前端开发的理解,提出了前端开发需要具备的能力,以及前端开发工程师的三个境界,同事给出后端开发工程 […]...

  4. MySQL安装出现的1045问题以及解决方法

    MySQL安装出现1045的问题解决办法:     1045、的原因是已经装过了MySQL再次装的时候报的错误 […]...

  5. CentOS7 Hadoop 安装(完全分布式)

    一、hadoop集群安装模式   单机模式 直接解压,无需任何配置。主要用于测试代码。没有分布式文件系统。   […]...

  6. Dynamics 365 联系人Contact的快速创建窗体,如何知道父窗体是哪个实体,通过window.top.parent.Xrm.Page.getUrl()可以知道父窗体的URL

    Dynamics 365 联系人Contact的快速创建窗体,如何知道父窗体是哪个实体?相信有人会遇到过这种头 […]...

  7. 五十音小游戏中的前端知识

    本文内容主要介绍小游戏开发流中程涉及到的前端知识的如深色模式、离线缓存、樱花动画、横屏判断等知识的归纳介绍和个 […]...

  8. 调试400错误解决方法(原创)

    错误描述:项目不管是开始执行还是开始调试,最后都出现oop,we cant open http://local […]...

展开目录

目录导航