c语言入门-概述

起源

    1950晶体管计算机年代,欧美计算机学家合力所组成的联席大会共同开发 ALGOL(ALGOrithmic Language),也称为A语言。

    1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

    1967年,英国剑桥大学的 Dennis MacAlistair Ritchie(丹尼斯·麦卡利斯泰尔·里奇) 对 CPL语言做了简化,推出了 BCPL (Base Combined Programming Langurage)语言。

    1970年美国贝尔实验室的 Brian Wilson Kernighan(布莱恩·威尔森·柯林汉) 以 BCPL 语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母),并用B语言写出了第一个 UNIX 操作系统。

    1972年~1973年间,贝尔实验室的 Dennis M.Ritchie 在 B 语言的基础上设计出了 C 语言(取BCPL的第二个字母)。

    1977年,Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

    1978年,Brian W.Kernighian和 Dennis M.Ritchie共同出版了名著《The C Programming Language》,被C语言开发者们称为“K&R C”。

    1989年,ANSI 发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。

    1990年,ANSI C 被国际标准组织ISO采纳,命名为ISO/IEC9899: 1990,简称为“C90”。

    1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。

    2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。
优点
    1、简洁紧凑、灵活方便
    2、运算符丰富
    3、数据类型丰富
    4、表达方式灵活实用
    5、允许直接访问物理地址,对硬件进行操作
    6、生成目标代码质量高,程序执行效率高
    7、可移植性好
    8、表达力强
缺点
    1、C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
    2、C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。

C语言关键字
  关键字就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等。

  由ANSI标准定义的C语言关键字共32个: 

  auto double int struct break else long switch

  case enum register typedef char extern return union

  const float short unsigned continue for signed void

  default goto sizeof volatile do if while static
    C99标准新增5个关键字:

    inline        内联函数,在C++中用的多, 它是宏定义的一种优化实现方式
    restrict    它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式
    _Bool        unsigned int 型,在C99中被定义为布尔型,只可容纳0、1两个值
    _Complex    复数类类型
    _Imaginary    纯虚函数类型
    C11标准新增1个关键字:

    _Genneric 泛型

  根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类:

  一、数据类型关键字

  A .基本数据类型(5个)
  void :声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
  char :字符型类型数据,属于整型数据的一种
  int :整型数据,通常为编译器指定的机器字长
  float :单精度浮点型数据,属于浮点数据的一种
  double :双精度浮点型数据,属于浮点数据的一种

  B .类型修饰关键字(4个)
  short :修饰int,短整型数据,可省略被修饰的int。
  long :修饰int,长整形数据,可省略被修饰的int。
  signed :修饰整型数据,有符号数据类型
  unsigned :修饰整型数据,无符号数据类型

  C .复杂类型关键字(5个)
  struct :结构体声明
  union :共用体声明
  enum :枚举声明
  typedef :声明类型别名
  sizeof :得到特定类型或特定类型变量的大小

  D .存储级别关键字(6个)
  auto :指定为自动变量,由编译器自动分配及释放。通常在栈上分配
  static :指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
  register :指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
  extern :指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
  const :与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)
  volatile :与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值
  二、流程控制关键字

  A .跳转结构(4个)
  return :用在函数体中,返回特定值(或者是void值,即不返回值)
  continue :结束当前循环,开始下一轮循环
  break :跳出当前循环或switch结构
  goto :无条件跳转语句

  B .分支结构(5个)
  if :条件语句,后面不需要放分号
  else :条件语句否定分支(与if连用)
  switch :开关语句(多重分支语句)
  case :开关语句中的分支标记
  default :开关语句中的“其他”分支,可选。

  C .循环结构(3个)
  for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2..循环,其中2为循环条件。在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
  do :do循环结构,do 1 while(2); 的执行顺序是1->2->1..循环,2为循环条件
  while :while循环结构,while(1) 2; 的执行顺序是1->2->1..循环,1为循环条件

  以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

C语言34种运算符
  按优先级从高到低排序,空行优先级下降一级别。

()        圆括号
[]        下标
->        指针型结构成员
.        结构成员
    /* 单目、右结合运算 */
!        逻辑非
~        位非
++        自增
--        自减
-        取负
(类型)    类型转换
*        取内容
&        取地址
sizeof    求数据类型或者表达式的长度
    /* 单目、右结合运算 */

    /* * 双目、左结合运算 * */
*        乘
/        除
%        求余
+        加
-        减
<<        左移
>>        右移
<        小于
<=        小于等于
>        大于
>=        大于等于
==        等于
!=        不等于
&        位与
^        位异或
|        位或
&&        与
||        或
    /* * 双目、左结合运算 * */
?:        条件运算    /* * * 三目、右结合运算 * * */

=        赋值运算(+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=)
,        逗号运算
时间: 2024-08-01 19:48:43

c语言入门-概述的相关文章

C语言入门学习

1.C语言入门概述及上机 2.数据表示:常量.变量.字符集.标识符.关键字 3.数据操作:运算符.表达式.基本数据类型.类型转换 4.流程控制结构:顺序结构.分支结构.循环结构 5.数组与字符串 6.函数与预处理 7.指针与内存 8.用户自定义数据类型 9.位运算 10.文件操作 大体学习思路如此,有时间再来详细描述

C语言入门(1)——C语言概述

1.程序与编程语言 我们使用计算机离不开程序.程序告诉计算机应该怎样运行.程序(Program)是一个精确说明怎样进行计算的指令序列.这里的计算能够是数学运算,比方通过一些数学公式求解,也能够是符号运算.比方我们使用world编辑一个文档或是通过搜索引擎检索信息. 计算机本质上是由数字电子电路组成的运算机器,全部的运算都仅仅能通过数字来表示和处理.通过将各种数据转换为数字表示,能够使计算机处理各种信息.比方音乐.图片.电影等. 程序由一系列指令组成的,指令就是指挥计算机做某种运算的命令.通常包括

《Go语言入门》第一个Go语言Web程序——简单的Web服务器

概述 上一篇讲了 <Go语言入门>第一个Go语言程序--HelloWorld,接下来讲一下Go语言Web开发入门必修课:第一个Go语言Web程序--简单的Web服务器. 与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 Go语言Web应用:IBM的云平台Bluemix使用初体验--创建Go语言 Web 应用程序,添加并使用语言翻译服务 Web服务器代码 Google在ht

《Go语言入门》如何在Windows下安装Go语言编程环境

概述 本文为Go语言学习入门第一篇,<Go语言入门>如何在Windows下安装Go语言编程环境 . 主要讲Go语言编译环境的安装以及基于Notepad++(Go语言插件.语法高亮)的开发环境配置. 下载安装包 安装包下载地址:https://golang.org/dl/ 这里选择下载Windows版本,点击链接打开的页面可能不会开始下载:地址栏里会显示完整的下载地址,如:https://golang.org/doc/install?download=go1.5.1.windows-amd64.

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

C语言入门(二十五)文件操作

文件操作  一.标准文件的读写 1.文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char *f

第一节,C语言入门

1.标示符:    命名规则:    1.只能由字母.数字.下划线组成    2.不能数字开头    3.不能与关键字重名    4.严格区分大小写    命名规范:     1.起一个有意义名字     2.驼峰标示2.注释 注释: 对代码的解释说明,是写给程序看的,方面程序员之间交流 特点: 注释是不参与编译 /* 这里面可以写 */ 多行注释 // 这是一个单行注释 只有这一行是注释,只有 两个斜杠后面才是注释内容 /* */ command + / 注释或取消注释 多行注释是可以嵌套单行

哪有python开发语言入门教程免费下载?

人工智能时代,如果不想被机器人取代,最应该掌握的是编程.Python作为连续10年最受欢迎的编程语言,不但能开发Google .豆瓣等大型网站,还是人工智能领域的第一语言.那么,我猜你想问哪里有python开发语言入门教程. 千锋Python基础教程:http://pan.baidu.com/s/1qYTZiNE Python课程教学高手晋级视频总目录:http://pan.baidu.com/s/1hrXwY8k Python课程windows知识点:http://pan.baidu.com/

VC6.0学习C语言入门SDK

百度网盘链接 VC6.0    密码:t6bd VS2010 密码:3of2 C语言入门教程 在线视频地址(PS此链接摘抄至博主lellansin) Acfun.tv:http://www.acfun.tv/search.aspx#query=C语言入门教程 Bilibili.tv:http://www.bilibili.tv/search?keyword=C语言入门教程 最后和大家分享一个实现行列式算法的C代码 /*=======================================