c语言c99标准_自学C语言之一

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Font Rending 的 Hint 机制对排版的影响

Font Rending 的 Hint 机制对排版的影响【转】 在设计一种 Font 时,设计者使用的是一个抽象的单位,叫做 EM,来源于大写 M 的宽度(通常英文字体中大写 M 的宽度最大)。EM 即不同于在屏幕显示时用的像素(Pixe…

《SQL初学者指南(第2版)》——2.4 指定列

本节书摘来自异步社区出版社《SQL初学者指南(第2版)》一书中的第2章,第2.4节,作者:【美】Larry Rockoff,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 指定列 到目前为止,我们只…

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图...

本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.13节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.13 创建视图 本方案展…

python刷抖音_用Python生成抖音字符视频!

抖音字符视频在去年火过一段时间。 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来。 主要用到的库有cv2,pillow库。 原视频如下,直接抖音下载的,妥妥的水印。 不过并不影响本次的操作。 / …

《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.2 选购镜头时应注意的事项...

本节书摘来自异步社区出版社《淘宝网开店 拍摄 修图 设计 装修 实战150招》一书中的第1章,第1.2节,作者: 葛存山,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 选购镜头时应注意的事项 面对如此之多的镜头&#xf…

SAM4E单片机之旅——13、LCD之ASF初步

在Atmel Studio 6中,集成了Atmel Software Framework(ASF框架)。通过它提供的库,可以很快速地完成新的项目。 这次的最终目标使用ASF在LCD上显示出文字“Hello World!”,现阶段目标是点亮LCD的背光,学习目标…

OpenCV坐标体系的初步认识

实验基础本次实验通过一个简短的例子,主要来说明下面4个问题: 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。&…

在Visual Studio上开发Node.js程序

在Visual Studio上开发Node.js程序 原文:在Visual Studio上开发Node.js程序【题外话】 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发。结果还真找到了一个,来自微软的Node.js Tools for Visual Studio(NTVS&a…

mpls工作原理通俗解释_用这两种方法向最终用户解释NLP模型的工作原理还是不错的...

点击上方关注,All in AI中国上周,我看了一个关于“NLP的实践特性工程”的演讲。主要是关于LIME和SHAP在文本分类可解释性方面是如何工作的。我决定写一篇关于它们的文章,因为它们很有趣、易于使用,而且视觉上很吸引人。所有的机器…

三层架构——配置文件

1、配置文件是什么? 配置文件是随安装程序一起被安装到计算机上的文件,里面存放着安装好的应用程序执行时所须要的參数。 应用程序配置文件是标准的XML文件,XML标记和属性是区分大写和小写的。它能够按须要更改,开发者可使用配置文…

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...

本节书摘来异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第2章,第2.4节,作者:邱毅凌,更多章节内容可以访问云栖社区“异步社区”公众号查看 02-04项目范围(Scope)管理 嵌入式…

flex(入门)之timer的使用,键盘,鼠标的监听

package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.events.TimerEvent;import flash.utils.Timer;import mx.controls.Label;//窗体大小&#xff0…

python 线程超时设置_python 条件变量Condition(36)

文章首发微信公众号,微信搜索:猿说python对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition.一.线程条件变量Condition相关函数介绍acquire() — 线程…

MsWord 操作总结

转自(http://www.cnblogs.com/eye-like/p/4121219.html) Msdn上的word操作api(不过只有英文版,英文差的先闪过) Word2007的API:http://msdn.microsoft.com/en-us/library/bb257531(voffice.12).aspxWord201…

两数之和 python_同一屏幕播放两个视频 视频左右两个画面或视频上下两个画面如何制作...

咱们在网上经常可以看到一些视频画面是可以在同一屏幕播放两个视频,有的是视频左右两个画面或视频上下两个画面这些是如何制作的呢,其实熟悉视频编辑软件的网友应该会比较了解这些操作,好嘞,来,现在就让小编来演示一下…

dlib人脸特征点对齐

前面我们介绍了使用dlib进行人脸检测&#xff0c;下面我们给出如何使用dlib进行人脸特征点检测。我们直接贴出代码。我们的代码包括如下几部分功能&#xff1a; 检测单张图片检测一个视频检测一个camera 先给出代码&#xff1a; #include <dlib/image_processing/frontal_…

《LoadRunner 12七天速成宝典》—第2章2.6节第二个性能测试案例

本节书摘来自异步社区《LoadRunner 12七天速成宝典》一书中的第2章&#xff0c;第2.6节第二个性能测试案例&#xff0c;作者陈霁&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 第二个性能测试案例云云&#xff1a;烤鱼吃得很爽。 恋恋&#xff1a;就…

MongoDB_1

突然想去看下MongoDB的东西&#xff0c;于是有了这篇文章。其实很早以前就看过一些关于NoSql的文章&#xff0c;还记得当时里面有介绍MongoDB的&#xff0c;多瞅了2眼&#xff0c;并且在Window下安装了MongoDB的驱动&#xff0c;小玩了会。今天重新翻出来&#xff0c;没成想在命…

pyqt5从子目录加载qrc文件_实战PyQt5: 045-添加资源文件

添加资源文件在使用PyQt进行图形界面开发的时候不免要用到一些外部资源&#xff0c;比如图片&#xff0c;qss配置文件等。在前面代码中&#xff0c;遇到这类问题&#xff0c;我们使用绝对路径的方式来解决&#xff0c;这种方式&#xff0c;本身有其不方便之处(比如&#xff0c;…

西门子ddc_铁门关西门子两通电动阀VVF42.25-10C+SKD60西

铁门关西门子两通电动阀西SIEMENS/西门子电动温控阀、控制箱、电动蝶阀、电动球阀、超声波热量表、超声波流量计、电磁流量计阀体灰口铸铁 EN-GJL-2502.霍尼韦尔主营&#xff1a;楼宇资料系统、热网自控系统、风机盘管电动两通阀、空气压差开关、水流开关、电动执行器、风阀执行…