上次自学C语言还是在刚开学到国庆期间,听学姐的建议买了本C语言的书,在军训期间的晚上翻翻看看。后来选课、开始正式上课、面试社团、开各种会等等,好像每天都有许多事要忙,但又没忙出来什么结果,慢慢地好像就把C语言放下了。近日拿出C语言的书再次学习,发现比初学时理解透彻了些。
书中第一章简要介绍了C语言的历史和特性、编写程序的步骤、编译器和连接器的一些知识和C标准等。使用C语言通常有7个步骤:定义程序的目标、设计程序、编写代码、编译、运行程序、测试和调试程序、维护和修改程序。计算机语言有许多种,我们选择C语言的理由主要包括它的设计特性、高效性、可移植性、强大而灵活、面向程序员等。当然C语言也有一些缺点,如C语言十分严谨、涉及指针的编程错误难以察觉等。瑕不掩瑜,C语言的优点比缺点多很多,它仍是最重要的编程语言之一。
第二章以一个简单程序为例,逐行介绍代码的含义与细节,了解之后能够自己编写简单的程序,会调用printf()函数,打印一些简单对话。
不过让我印象更深的还是关键字与变量。
关键字如下:

变量有三个基本要素:变量名、变量的数据类型和值。基本数据类型包括关键字、有符号整型、无符号整型(只能表示零和正整数)、布尔类型(1表示true,0表示false)、实浮点型、字符型、复数和虚数浮点数。

整数是没有小数部分的数,浮点数与之相反,二者的储存方案不同,计算机把浮点数分成小数部分和指数部分来表示,分开储存这两部分(即7.00和7在数值上相同,但储存方式不同)
其中 int 类型、short int 类型、long int 类型、long 类型、long long int 类型、long long 类型 、unsigned int 类型、unsigned 类型均为整数类型(在C90标准中添加了unsigned long int 或 unsigned long 和 unsigned short int 或 unsigned short类型,C99标准又添加了 unsigned long long int 或unsigned long long ,本人电脑在运行当中证实了不支持C99和C11)一般 long long 占64位,long 占32位,short 占16位,int 占16位或32位。对于16位机,short 和 int 最小取值范围是 -32767到32767;对于32位机,long 的最小取值范围是-2147483647到2147483647。对于 unsigned short 和 unsigned int ,最小取值范围是0到65535对于 unsigned long ,最小取值范围是0到4294967295。 long long 类型是为了支持64位的需求,最小取值范围是-9223372036854775807到9223372036854775807; unsigned long long 的最小取值范围是0到18446744073709551615。如果一个数超出了int类型的取值范围,且在long类型的取值范围内时,使用long 类型。然而,对于那些long占用的空间比int大的系统,使用long类型会减慢运算速度。如果在long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。类似地,如果确实需要64位的整数,应使用long long类型。如果在int 设置为32位的系统中要使用16位的值,应使用short类型以节省存储空间。通常,只有当程序使用相对于系统可用内存较大的整型数组时,才需要重点考虑节省空间的问题。使用short类型的另一个原因是,计算机中某些组件使用的硬件寄存器是16位。
浮点类型包括float类型、double类型(意为双精度)和long double类型。float类型必须至少能表示6位有效数字(不是精确到小数点后6位数字)。通常系统储存一个浮点数要占用32位,其中8位用于表示指数的值和符号,剩下24位用于表示非指数部分(也叫作尾数或有效数)及其符号。double类型和float类型的最小取值范围相同,但至少必须能表示10位有效数字。一般情况下,double占用64位而不是32位,一些系统将多出的32位全部用来表示非指数部分,不仅增加了有效数字的位数(即提高了精度),而且还减少了舍入误差,另一些系统把其中的一些位分配给指数部分,以容纳更大的指数,从而增加了可表示数的范围。无论哪种方法,double类型的值至少有13位有效数字,超过了标准的最低位数规定。
不同变量对应的转换说明也不同,如下示例

如%.2f 中的.2用于精确控制输出,指定输出的浮点数只显示小数点后面两位。

c语言c99标准_自学C语言之一相关推荐

  1. c语言c99标准_如何成为一名优秀的 C 语言程序员?

    问题的提出 每过一段时间我总会收到一些程序员发来的电子邮件,他们会问我是用什么编程语言来编写自己的游戏的,以及我是如何学习这种编程语言的.因此,我认为在这篇文章里列出一些有关C语言的最佳读物应该能帮到 ...

  2. c语言c99标准_从年薪10万到年薪30万,C语言程序员必读的5本书

    C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研发的.C语言可以把程序简单地编译为机器指令,使得它成为了最高效的语言. 为什么在程序员中,C语言如此流行呢?这背后有很多原 ...

  3. c语言如何设置c99标准,新的C语言: C99标准介绍

    新的C语言: C99标准介绍 Randy Meyers 此篇文章摘取与即将登载于<Dr.Dobb's 软件研发>>第二期(2003年9月)的<新的C语言,C99标准介绍> ...

  4. c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...

    正如我前面的文章提到的,C语言虽然已经比较成熟,但是近些年来也是有所发展的--比如增加了许多新特性.遗憾的是,可能因为C语言程序员的工资比不过互联网程序员,国内很多教材比较老旧,几乎不涉及近些年来C语 ...

  5. c语言c99标准_C语言的三套标准:C89、C99和C11

    我们今天使用的 Windows.Linux.Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来.Unix 作为80年代主流的操作系统,是整个软件工业的基础,是现代操作系统的开山鼻祖,C语 ...

  6. c语言c11标准侯捷,C语言的C89、C99和C11标准(上)

    一.C99针对C89的改变 1.增加了restrict指针 通过restrict修饰指针,可以确保两个指针不能指向同样的内存空间. 如memcpy函数在C99标准下的定义为 void *memcpy( ...

  7. C语言初阶_初识C语言(1)

    凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...

  8. JAVA语言教学重点_《JAVA语言》教学大纲

    <语言>教学大纲 课程代码: 课程总学分实验学分: 课程总学时数实验学时数: 一.课程目标 课程目的是培养学生对面向对象编程技术的理解和掌握,加强对学生"计算机编程思维" ...

  9. c语言有趣代码_为什么C语言永远不会过时?

    直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?笔者作为专门下载了这两种语言的底层源码. ...

最新文章

  1. 中台到底是什么?中台包含哪些内容?(包邮送书)
  2. Linux2.6内核--内存管理(2)--区
  3. ORACLE基础知识
  4. strtus2改成springboot_jdk1.6环境下struts2改spring boot方案
  5. post获取重定向的链接 python_【转载】python面试基础知识(四) 网络部分
  6. 360画报屏保,放大营销“感官力”
  7. springboot项目整个的启动流程
  8. 公钥和私钥的作用和区别
  9. Spring Boot整合mybatis报错Invalid bound statement (not found)
  10. 宝塔 无法自动认证,请填写本地服务器的登录信息
  11. 概率论(三)-多维随机变量及其分布:n维随机变量、概率分布函数F(x1,x2,..xn)、联合分布律、联合概率密度、边缘分布律、边缘概率密度、条件分布律、条件概率密度、β函数、Γ函数、max{X,Y}
  12. 群晖emby服务端下载(弃坑,官网已经能顺畅访问)
  13. CentOS8(8.2)安装mysql8
  14. 【NLP】5计数词向量底层代码编写和gensim word2vec库入门——斯坦福大学CS224n第一次课作业代码复现
  15. Android开发高手课笔记 - 01 崩溃优化(上):关于“崩溃”那点事
  16. Linux基础——磁盘配额
  17. 《构建之法》第1、2、16章阅读与思考
  18. 「经济理财」跟简七学理财之理财训练营(上)
  19. up()down()
  20. easyConnect无法连接到服务端,之前可以

热门文章

  1. 基于PageRank的作弊检测算法
  2. maskView与CAGradientLayer那回事儿
  3. Vue — 第五天(路由)
  4. 在sql当中为了让数据做缓存做with as的操作
  5. sql server management studio 快速折叠object explorer中的instance
  6. css3中的BFC,IFC,GFC和FFC(转载)
  7. sourceTree添加git密钥步骤
  8. 【java】错误 找不到或无法加载主类
  9. 如何判断网通、电信、铁通IP地址分配段
  10. dart --- 简单的闭包