C语言——概述

1946年,世界上第一台电子数学式计算机在美国宾夕法尼亚大学诞生,ENIAC是电子数值积分计算机
人们使用计算机解决问题时,必须用某种‘语言’来和计算机进行交流
利用某种计算机语言提供的命令来编制程序,并把程序存储在计算机的存储器中,利用此程序来控制计算机的运行,达到解决问题的目的
用于编写计算机可执行程序的语言称为程序设计语言

1.程序设计语言

  • (1)计算机语言
    计算机语言是人们描述计算过程(程序)的规范书写语言
    程序是对计算机处理对象和计算规则的描述
    语言的基础是一组记号和语法规则
    根据语法规则由记号构成记号串的全体就是语言
    人和人交流使用自然语言
    人和计算机交流使用计算机语言
    计算机语言是根据计算机的特点编制的,是计算机能够理解的语言,是有限规则的集合
    计算机语言是用语法来表达程序员的思想,编写程序的时候必须严格遵守语法规则
  • (2)程序设计语言的发展
    计算机是一种具有内部存储能力、由程序自动控制的电子设备
    人们将需要计算机做的工作写成一定形式的指令,存储在计算机的内部存储器中
    当人们需要结果的时候就向计算机发出一条简单的指令,计算机按指令顺序自动执行操作
    人们把这种可以连续执行的一条条指令的集合叫做程序
    程序是计算机指令的序列,编写程序就是为计算机安排指令序列
    机器语言到高级语言,面向过程的语言到面向对象的语言
    机器语言
    将计算机指令中的操作码和操作数均以二进制形式的代码表示,是计算机能够直接识别和执行的语言
    优点:不需要翻译、占用内存少、执行速度快
    缺点:和机器相关性大,通用性差,难以阅读和记忆,编码工作量大,难以维护
    汇编语言
    用助记符号来表示机器指令的符号语言
    也叫计算机符号语言
    用汇编语言编写的程序叫做汇编语言程序,必须经过翻译(汇编)编程机器语言才能被计算机识别和执行
    虽然克服了机器语言的缺点,但是仍然不适合理解和使用
    高级语言(面向过程的语言)(告诉计算机怎么做)
    具有国际标准,描述形式接近自然语言的计算机语言,完全符号化的描述形式
    用数学表达式来描述数据的计算过程
    高级语言只要求人们关心计算机求解问题的过程,不必关心计算机的内部结构,因此叫做面向过程的语言
    比如:Basic、Fortran、Cobol、Pascal、C语言等
    使用面向过程的语言编程的时候,主要精力放在算法过程的设计和描述上
    非过程化语言(面向对象的语言)(告诉计算机做什么)
    是一种功能更强的高级语言
    特点:非过程性、采用图形窗口、人机对话形式、基于数据库和面向对象技术
    容易编程、容易理解、容易使用、容易维护
    程序的运行效率和语言的灵活性没有过程化语言高
    比如:Visual Basic 、Java 、C++ 、C# 、Delphi等
    智能化语言
    用于人工智能领域,主要编写推理、演绎的程序
    目前主要是面向过程的语言和面向对象的语言

2.C程序设计语言

  • (1)C语言的发展历史
    C语言是国际上流行的,使用最广泛的高级程序设计语言
    可以用来写系统软件、应用软件
    语言简洁紧凑,使用灵活方便、运算符丰富,能实现汇编语言的大部分功能
    C语言生成目标代码质量高,程序执行效率高,程序的可移植性好
    C语言的产生
    满足UNIX操作系统开发的需要
    接近硬件的需要
    B语言到C语言(C语言更接近硬件)
  • (2)C语言的标准与版本(ANSI C)
    C语言环境有多种版本:TC2.0,BC3.1,BC5.0,VC6.0等
    最新windows和web应用程序提供动态的开发环境Visual C++、.NET(C#)
  • (3)C语言的特点
    c语言简洁、紧凑,编写的程序短小精悍
    运算符丰富、数据结构丰富
    结构化程序设计语言
    允许直接访问物理地址
    预处理机制
    可移植性好
    语法限制不太严格、程序设计自由度大,对程序员要求不高
    生成的代码质量高,程序的执行效率高

3.C语言的基本语法成分

  • (1)字符集
    字符是可以区分的最小符号,是构成程序的基础
    c语言字符集是ASCII字符集的一个子集,包括英文字母、数字以及特殊符号
    英文字母:a~z和A~Z
    数字:0~9
    特殊字符:空格 ! # % ^ & * — - + = ~ < > / \ | . , : ; ? ’ " ( ) [ ] { } 。
    由字符集中的字符可以构成C语言的语法成分,比如:标识符、关键字、特殊的运算符等等
  • (2)标识符
    标识符在程序中是用来标识各种程序成分,命名程序中的一些实体,比如:变量、常量、函数、类型和标号等对象的名字
    C语言规定,合法的标识符必须由英文字母或者下划线开头,只能由字母、数字、下划线构成
    不能跨行书写,自定义的标识符不能与关键字同名
    C语言中,大写字母和小写字母被认为是两个不同的字符
    习惯上符号常量名用大写字母表示,变量名用小写字母表示
    在C语言中,标识符的长度(一个标识符允许的字符个数)可以是任意的
    一般的计算机系统规定取前8个字符有效
    超过8个字符,多余的字符不会被识别
    c语言的标识符分为以下三类
    1)关键字(保留字),C语言中用来表示特殊含义的标识符,由系统提供
    比如:int float if switch while for sizeof 这些是构成c语言语法的基础
    关键字有特殊的语法含义,不允许用户重新定义
    关键字在程序中不允许随意书写,绝对不能拼错
    关键字也不能用作变量或者函数名
    2)预定义标识符
    预先定义的标识符,它们有特定的含义,用作固定的库函数或预编译处理中的命令
    库函数:scanf、printf、sin等
    预编译处理命令:define、include等
    3)用户标识符
    由用户自己定义的标识符,比如变量名或函数名
    一般用来给变量、函数、数组、文件等命名
    应该遵守标识符的命名规则,最好做到见名知义,提高程序的可读性
  • (3)运算符
    可以认为是系统定义的函数名字,这些函数作用于运算对象,得到一个运算结果
    运算符通常由一个或者多个字符构成
    根据运算对象的个数不同,运算符可以分为以下几种:
    单目运算符:! ~ ++ – *
    双目运算符:+ - * /
    三目运算符:?:

4.c语言程序的构成


版权声明:本文为ymeng9527原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。