1. 标准C语言

C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同。

ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语言”。ANSI C于1980年由美国国家标准局(American
National Standards Institute,简称ANSI)对外发布,各种编译器几乎都完整支持ANSI
C,市面上的书籍、大学里的教材、网上的教程大都以ANSI C为基础进行讲解,C语言中文网也不例外,也以ANSI C为基础。

在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。

科普一下:

C语言于1972年11月问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言,1983年由美国国家标准局 (American National Standards Institute,简称ANSI)开始制定C语言标准,于1989年12月完成,并在1990年春天发布,称之为ANSI C,有时也被称为 C89 或 C90。


C语言之父——里奇

在学习C语言之前,我们先了解一下C语言的历史。

C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。

C语言早期发展

1969-1973年在美国电话电报公司(AT&T)贝尔实验室开始了C语言的最初研发。根据C语言的发明者丹尼斯·里奇 (Dennis Ritchie) 说,C 语言最重要的研发时期是在1972年。

说明:丹尼斯·里奇(Dennis Ritchie),C语言之父,UNIX之父。1978年与布莱恩·科尔尼干(Brian
Kernighan)一起出版了名著《C程序设计语言(The C Programming
Language)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。2011年10月12日(北京时间为10月13日),丹尼斯·里奇去
世,享年70岁。

C语言之所以命名为C,是因为C语言源自Ken Thompson发明的 B语言,而B语言则源自BCPL语言。

C语言的诞生是和UNIX操作系统的开发密不可分的,原先的UNIX操作系统都是用汇编语言写的,1973年UNIX操作系统的核心用C语言改写,从此以后,C语言成为编写操作系统的主要语言。

K&R C

1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The C
Programming
Language》(中文译名为《C程序设计语言》)。这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称
这个版本的C语言为“K&R C”。

1988年丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)修改此书,出版了《The C Programming Language》第二版,第二版涵盖了ANSI C语言标准。第二版从此成为大学计算机教育有关C语言的经典教材,多年后也没再出现过更好的版本。

ANSI C 和 ISO C

1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。

为统一C语言版本,1983年美国国家标准局(American National Standards
Institute,简称ANSI)成立了一个委员会,来制定C语言标准。1989年C语言标准被批准,被称为ANSI X3.159-1989
"Programming Language C"。这个版本的C语言标准通常被称为ANSI C。又由于这个版本是 89 年完成制定的,因此也被称为
C89。

后来 ANSI 把这个标准提交到 ISO(国际化标准组织),1990年被 ISO 采纳为国际标准,称为 ISO C。又因为这个版本是1990年发布的,因此也被称为C90。

ANSI C(C89) 与 ISO C(C90)内容基本相同,主要是格式组织不一样。

因为 ANSI 与 ISO 的C标准内容基本相同,所以对于C标准,可以称为ANSI C,也可以说是ISO C,或者 ANSI / ISO C。

注意:以后大家看到 ANSI C、ISO C、C89、C90,要知道这些标准的内容都是一样的。

目前,几乎所有的开发工具都支持 ANSI / ISO C 标准。是C语言用得最广泛的一个标准版本。

C99

在ANSI C标准确立之后,C语言的规范在很长一段时间内都没有大的变动。1995年C程序设计语言工作组对 C语言进行了一些修改,成为后来的1999年发布的 ISO/IEC 9899:1999标准,通常被成为C99。

但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的時候,微软和Borland却似乎对此不感兴趣。

说明:GCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。

综上所述,目前广泛使用的C语言版本是 ANSI / ISO C,最经典的C语言教材是《C程序设计语言(The C Programming Language) 第二版》。


C语言版本更迭史

C语言对其它语言的影响

很多编程语言都深受C语言的影响,比如C++(原先是C语言的一个扩展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的C Shell等。

也正因为C语言的影响力,掌握C语言的人,再学其它编程语言,大多能很快上手,触类旁通,很多大学将C语言作为计算机教学的入门语言。

2. 标识符

C语言规定,标识符只能是字母(A~Z, a~z)、数字(0~9)和下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。 以下标识符是合法的: a, x,  x3, BOOK_1, sum5 以下标识符是非法的: 3s    以数字开头 s*T    出现非法字符* -3x    以减号(-)开头 bowy-1    出现非法字符减号(-)

在fedora 21 里面不限制标识符的长度,但它不受gcc编译器限制,代码正常执行。

 #include<stdio.h>
int main()
{
int abcdefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweudefgsjdfshfkshfkshfkjshifhweiuthrewuiriweuhriuwehweuihgfdiwehfuiwehfuiwehfiwehfiewhfiuhweihsiuhf=;
printf("hello world");
return ;
}

aaarticlea/png;base64,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aSUl12drarm+fuihh5orrrjcXHPNteVaDztHAAEEEEDglyagwLtu3YMSh60AXF/z5y9ICcBLBd/6RKaAOVcg/kvDyXS8W221lWnTprU5+eSTzOabb26ef/4FM3ToMKPVYCpa2yva8SR7liXgzNQf+V6LDNIvRKLPbbPNNrY/W5njjz/evTRt2lTzxhtv2P8/YhYuXJgfwOKcAAAgAElEQVRv9z/b+5999pl57733jC4WFOTWqLG3+fDDjxKj9j/88INZt26d+eabtT/LMeqYdIFAQQABBBBAAIFUAY14Zyp6PXn0O2PwnemDZXktUxBfXvvZlLoU6AwcOMCsXLnSXH75FW6UsXfvEnPppZeYu+66uyyHzGd+ZoFu3bqar7/+2vbh5eaJJx4zrVq1NvXq1TPXXnuNadu23c98dLmr1/l42WWXmhNO2HDh8MwzG1NHli59z7bpstw7+OldpbBkujh56KEHUj5/yy2DzOOPP5F3nxr1VtFFDAUBBBBAAAEEUgU0yp2ppL9eLsF3vpSAbKOj6a/n248aGGebhg0bulHEfff9nfniiy/MPffcZ6ZPn57wadToBLP99tubLl26GY0sqgwfPsIMHjyo4OC7adMLzXnnnWt22WUXo1HMhx+eah56aEpKXxx33LEusN93331dwD9x4iQbID6Zso2O+eKLW5j996/tgshZs142d9wxwnz55Zcp2+X74ZBD6pnWrVuZ2rVruxHTefPmmdtvH2b++9//Jj6a75irVavm/I488giz44472ouT79zo8UMPPWxmz57t9pPcD3H6JN9xb+r7Rx99lGnS5Fzz1VdfuV19bvOtZsyY4b4KLXH664wzTjctW15sdt99d9fvkyZNLrQat/3Wdsmifv362LstDV2/Dx58m3nmmWfMBRecby8grjQKlKNzNF8FOrduvnlgvs3sSPuyvNtoA0a9YzGxEQIIIIAAAjkFyiX4zpcSkPOIkt6Ms5982yhgvOGGXmbQoMHm1VdfNXvvvbfp2/cG89FHH5k5c+a42k455RTzyCOPuqCmTp06NmC5ybz55psFrwpx6qmnmMaNz7b7v9H8+9//NjVr7mdKSkpcgP3ssxuCPgVVHTt2sEHUrTYHaL7ZddddTbNmTUsF3xdeeIEZN26cyxNSSoyC9e7du9oR+T5x+dx27du3t0H7HWbRosVmu+22M+3a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" alt="" />

3. 关键字

关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。

C语言的关键字分为以下几类:

分类 说明
类型说明符  用于定义、说明变量、函数或其它数据结构的类型。int、double等。
语句定义符 用于表示一个语句的功能。if else就是条件语句的语句定义符。
预处理命令字 用于表示一个预处理命令。include。

4. 运算符

C语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成,如加号(+)、减号(-)、乘号(*)等。

5. 分隔符

在C语言中采用的分隔符有逗号(,)和空格两种。逗号主要用在类型说明和函数
参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把
int a; 写成 inta; C语言编译器会把 inta 当成一个标识符处理,其结果必然出错。

6. 常量

常量是值不能被改变的量。C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在后面章节中将专门给予介绍。

7.变量

变量由用户自己命名,用来保存特定类型的数据,数据可以被改变。数据类型有整数、浮点数、字符等,将在后面章节进行介绍。

8. 注释

标准C语言的注释是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任
何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。

另外,各种编译器都支持以“//”开头的注释,虽然它不是标准C的规定,但是早已成为事实标准,在程序中广泛使用。“//”仅支持单行注释,也就是说,注释中不能出现换行符;而“/*  */”支持多行注释,注释中可以出现换行符。

C语言基本概念的更多相关文章

  1. 001_C/C++笔试题_考察C/C++语言基础概念

    (一)文章来自:C/C++笔试题-主要考察C/C++语言基础概念.算法及编程,附参考答案 (二)基础概念 2. 头文件中的ifndef/define/endif的作用? 答:防止该头文件被重复引用. ...

  2. [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)

    本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有 ...

  3. 《C语言程序设计现代方法》第2章 C语言基本概念

    C语言的基本概念 第一个C程序例子. /* pun.c */ #include <stdio.h> int main(void) { printf("To C, or not t ...

  4. 0.数据结构(python语言) 基本概念 算法的代价及度量!!!

    先看思维导图: *思维导图有点简陋,本着循循渐进的思想,这小节的知识大多只做了解即可. *重点在于算法的代价及度量!!!查找资料务必弄清楚. 零.四个基本概念 问题:一个具体的需求 问题实例:针对问题 ...

  5. C语言重要概念汇总

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

  6. C语言基本概念之表达式

    原文地址:http://blog.csdn.net/astrotycoon/article/details/50857326 [侵删] 什么是表达式(表达式的定义)? 对于表达式的定义,好像从来没有人 ...

  7. 2. Go语言—包概念

    一.包的概念 和python一样,把相同功能的代码放到一个目录,称之为包 包可以被其他包引用(若包中变量/函数被其他包调用,名需大写) main包是用来生成可执行文件,每个程序只有一个main包 包的 ...

  8. C语言目的概念(C语言学习笔记)

    什么是目 目是针对操作符来说的,一个操作符影响两个操作数就表示该操作符为双目运算符 举个例子: 1+2 这里的加号影响了1和2两个操作数,所以"+"就是双目运算符 +1,-1 这里 ...

  9. javaweb学习总结七(XML语言作用、语法)

    一:XML语言的概念以及作用 1:xml概念:extensible Markup language,可扩展行标记语言,因为html的语法比较混乱,不够严谨. 用html写的系统不好维护,所以w3c组织 ...

随机推荐

  1. js拖拽进度条

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx. ...

  2. Netbeans使用Xdebug调试的配置

    在phpinfo()信息里找到php.ini的位置并打开php.ini在文档最后添加如下代码: 注释原来xdebug配置 xdebug.remote_enable=onxdebug.remote_ha ...

  3. 养成代码注释习惯,帮助你更好使用NetBeans导航器

    在使用NetBeans编写php代码时,为了在一个类中,或者在方法库文件中快速找到你想要找的函数或方法,通常我们会使用NetBeans的导航器. 我们看一个导航器的事例: 大家知道,在php中代码习惯 ...

  4. Java反编译插件jad

    原文地址:http://www.cnblogs.com/JimLy-BUG/p/5405868.html 1.首先下载jar文件:net.sf.jadclipse_3.3.0.jar  下载   2. ...

  5. hihoCoder 1092 : Have Lunch Together

    题目大意:小hi和小ho去咖啡厅喝咖啡,咖啡厅可以看作是n * m的矩阵,每个点要么为空,要么被人.障碍物.椅子所占据,小hi和小ho想要找两个相邻的椅子.起初两个人都在同一个点,求两人到达满足要求的 ...

  6. What’s the difference between an interface and an abstract class in Java?

    原文 What’s the difference between an interface and an abstract class in Java? It’s best to start answ ...

  7. JAVA大整数傻瓜入门

    http://blog.csdn.net/skiffloveblue/article/details/7032290..先记着

  8. nodejs学习笔记之安装、入门

    由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点.       首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例 ...

  9. Hive 9、Hive 在表中添加正则匹配

    在Hive中还有一项比较好用的功能,也是非常重要的功能:在建表的时候可以不指定表的行.字段.列的分隔方式,通过给表指定一段正则表达式,让Hive自动去匹配: 1.创建表 CREATE TABLE ap ...

  10. 动态规划之最长公共子序列LCS(Longest Common Subsequence)

    一.问题描述 由于最长公共子序列LCS是一个比较经典的问题,主要是采用动态规划(DP)算法去实现,理论方面的讲述也非常详尽,本文重点是程序的实现部分,所以理论方面的解释主要看这篇博客:http://b ...