编程知识点(1)关键词之存储类型_其它综合

来源:脚本之家  责任编辑:小易  

1、C语言的数据类型分类C语言的数据类型分类:基本数据类型:整型int字符型char浮点型:单精度浮点型float双精度浮点型double构造数据类型:数组(如int a[])结构体struct联合体(或叫共用体)union枚举类型enum指针类型(如int*p)空类型void2、int,unsigned int,short,long1)整型int:大小:16位2字节 或 32位4字节(取决于编译器)存储格式:0~30位是数据位,第31位是符号位,用0代表正数,1代表负数。负数用补码存储。存储范围:-2^31~2^31-1打印格式:%d(十进制)、%o(八进制)、%x或%X(十六进制)说明:int类型用于存放整数,占16或32位(取决于编译器),2或4字节。其中第31位为符号位(符号位0代表正数,1代表负数),后面几位为数据位负数在内存中是以补码的形式存储的。(补码:按位取反,末位+1)(用补码存储,正0和负0相同)(对一个整数求补码再求补码,等于自身)有十进制,八进制,十六进制三种存储方法八进制输入输出格式化使用%o。八进制数以0开头,如0666十六进制输入输出格式化使用%x或%X。十六进制数以0x开头,如0x123456782)无符号整型unsigned int:大小:同int型存储格式:0~31位都是数据位,无符号位存储范围:0~2^32-1打印格式:%u说明:与int型基本相同,区别是int型的符号位不再是符号位而也作为数据位,因此无符号整型数据比整型数据存储范围大2倍,不过无法存储负数适用于只有正数的情况unsigned关键字不仅仅可以修饰int类型,还可修饰short long float等类型。注意:unsigned关键字修饰的变量无法接收负数。无符号数的输入输出格式控制是%u3)短整型short:大小:16位2字节存储格式:0~14位为数据位,第15位为符号位,用0代表正数,1代表负数存储范围:-32768~32767打印格式:%h说明:short类型与int类型类似,只不过是16位,2字节。第15位为符号位,后面几位为数据位short类型适用于存储不太大的数据,节省内存空间。short类型的输入输出格式控制是%h4)长整型long:大小:32位4字节存储格式:同32位int类型存储范围:同32位int类型打印格式:%ld说明:在过去的16位编译器中,int型是16位,所以long类型是32位。不过在现代的32位编译器中,int型与long类型已无本质区别。如果需要考虑程序跨平台移植(如16位编译器<--->32位编译器)需要谨慎选择使用int还是long3、char类型:大小:8位1字节存储格式:0~6位都为数据位(128)或 0~7位都为数据位(256,扩展后的ASCII表)存储范围:0~255打印格式:%c说明:ASCII表与转义字符-在计算机的编码中,字符是使用ASCII表进行编码的。每一个字符都有一个对应的数字,例如:'A'->65'a'->97'0'->48 等除了常见的数字、字母、符号(如+-*/等)外,ASCII表还存储了一些看不见的控制字符,如:空或'\\0'(字符串结束标志)->0空格->32任意的ASCII表内字符都可以用'\\'+数字(八进制)的方式来表示,有些还可以用'\\'+字符来表示,称之为转义字符。转义字符即在'\\'后的字符不代表了它本来的含义。常见的转义字符:\\a:蜂鸣器\\b:backspace退格键\\n:换行,光标移动至下行行首\\r:光标移动至本行行首\\f:换页\\t:tab水平制表符\\\\:输出\\\\':输出'\\":输出\\?输出?\\0:NULL字符串结束标志ASCII表与转义字符end-4、float与double浮点数的存储-浮点数分为float类型(32位)和double类型(64位)其中一位是符号位,代表整个数的正负一位是指数符,代表指数部分的正负尾数表示0.XXXXXXX(浮点数的有效数字),但不存0和.指数表示指数的有效数字因此,尾数代表了浮点数的精度,指数代表了浮点数的范围浮点数存储的小数不是实际值,只能是近似值(如1/3,只会存储0.333333)浮点数的存储end-1)float类型:单精度浮点型大小:32位4字节存储格式:符号位(1位)+尾数(23位)+指数(8位,含1位符号位)精度:小数部分最多有效7位,有效6位(2^23=8388608,所以是7位)存储范围:-3.40E+38~+3.40E+38(即-2^128~2^128)打印格式:%f(十进制计数法),%e(指数计数法)2)double类型:双精度浮点型大小:64位8字节存储格式:符号位(1位)+尾数52(位)+指数(11位,含1位符号位)精度:小数部分最多有效16位,有效15位(2^52=4503599627370496,所以是16位)存储范围:-1.79E+308~+1.79E+308(即-2^1024~2^1024)打印格式:同float类型注意:double类型是8字节而float类型是4字节,因此double型比float型的数据更加精确,但计算速度会更慢。3)long double类型:大小:96位12字节存储格式:同double类型精度:同double类型存储范围:同double类型打印格式:%lf,%lewww.zgxue.com防采集请勿采集本网。

(应一些初学者的要求,虽然本人也绝对称不上专业,但是想让一个人快速地走出初学的迷茫,需要这种精炼的集合)

C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1、数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举

首先,阐明一下我的观点:

算了,链表麻烦,数组的话我可以搞.

不论是什么编程语言,其实有很多的共通之处,基本上你学过一门编程语言,其他的语言也能很快学会.(本人学C++,但是会在必要的时候尽量避开语言特色只讲想法).

1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int: 声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明

在这么广泛且有深度的领域中,有些功能的确没办法先让人理解内部构造再去使用,比如C++语言中的scanf,printf涉及到指针的传递事项和变参,cin,cout涉及到模板和重载运算符等等.但是我还是选择先从存储类型开始讲,上述的复杂的东西以后也会讲到(但是有C++语言特色要开Extra篇).

首先应当让大家知道的是计算机如果采用十进制在资源上(目前)是极为浪费,且性能不优的,而且二进制与十进制的转换是极为方便的,有兴趣可以自行百度"为什么计算机采用二进制",不浪费篇幅.

而正如人要写字,就要有纸和笔,计算机要记录信息,就要给计算机"纸"与"笔","纸"自然是有限的,而"笔"也是有规格的.内存就是计算机的"纸",而对内存读写的部件就是"笔".

(这么说来计算机的"笔"还可以读,哈哈)

但是,人脑所适应的是十进制,二进制对于我们来讲实在不易理解,而且计算机还要记录非阿拉伯数字的信息,比如我这篇文章,于是就有了ASCII编码,并有了对应的存储类型char(character),对于小一点的数有short int,大一点的数有int,再大一点有long long int,这些归到整数(integer)里面,而往往有时候我们要记录小数,于是在integer里面拿几位来记录小数点的(十进制)位置,就有了float(floating number)和double(Double-precision floating-point)

(想一想,为什么不是直接使用二进制记录小数,即记录二进制下的小数点位置?提示:将0.31试着转化成二进制小数,你会发现什么?)

然后把这些类型的属性与可能的bug讲一下,本篇就可以结束了

char:占1字节,记录[-128, 127](提示一下没看懂的小伙伴,这是闭区间,即包含两端点的区间)的整数,ASCII码表中一般期望背一下字符0的ASCII码,字符A的ASCII码,字符a的ASCII码以及空格和换行的ASCII码,下表中先了解[0, 127]码值对应的字符

([128, 255]的部分我想你在学了unsigned以后会明白的,或者我提示一下,你把这个码值转八位二进制看看有什么发现).

ASCII码表,来自网络

short int:占2字节,记录[-32768, 32767]的整数.

int:占4字节,记录[-2147483648, 2147483647]的整数.

long long int:占8字节,记录[-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]的整数.

(想一想,为什么下限的绝对值比上限的绝对值多1?提示:从二进制符号位来思考"正负数"的个数是否相同)

(要讲浮点数,引入一下计算机上的科学记数法,比如6.02e23表示6.02乘以10的23次幂,指数为负数我不用说了吧)

float:占4字节,记录[3.4e-38, 3.4e38]的实数,有效位数为6~7位.(因为有一部分位拿出来记录小数点了,精确度比不上整数的),但是前期入门时用用足够了

double:占8字节,记录[1.7e-308, 1.7e308]的实数,有效数位为15~16位(据说double类型的处理在现代的优化下比float快...)

那么问题就来了:我有一个int类型(32位),如果我将一个占用32位以上的数据赋值给这个int会怎么样呢?答案是32位以上的内容丢弃,32位及以下的内容照搬,而符号位就有可能被赋到1的值,也就是有些时候数据溢出会出现负数,有的时候会有正数.如果上下限不够,我们会采用高精度的方式来扩大上下限,所以大部分情况下出现数据溢出的情况是程序员的不认真导致的bug.

你的意思是不是输入一个字符串,检测已经建立的列表或元组里是否包含了这个字符串的元素?如果是这个意思,可以用in存在返回True,不存在返回False内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • c++实现图的邻接表存储和广度优先遍历实例分析
  • c++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
  • c++采用tls线程局部存储的用法实例
  • c++中静态存储区与栈以及堆的区别详解
  • rpc、rmi、soap的区别详解
  • 软件测试面试如何测试网页的登录页面
  • 微信小程序应用号开发教程详解
  • 可能是最通俗的一篇介绍markdown的文章
  • 分享18个最佳代码编辑器/ide开发工具
  • ibatis简单实现与配置
  • hadoop介绍与安装配置方法
  • flyway数据库版本控制的教程详解
  • web jmeter–接口测试工具详解
  • ie条件语句 ie hack大全
  • 使用元组(或者列表)创建一个存储Python关键字的对...
  • C语言, 存储类型关键字?
  • 谁能帮我把高中必修一政治必背知识点关键字连起来...
  • 九霄之上月老边,只为来生一段情。关键字(边),...
  • 在C语言中什么叫关键字,怎么用
  • 编程,以age为第一关键字,name为第二关键字升序排序...
  • C语言的32个关键词是什么?分别是什么意思?
  • 通过抓住关键词了解和掌握知识点是学习历史的方法...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页c++实现图的邻接表存储和广度优先遍历实例分析c++实现图的邻接矩阵存储和广度、深度优先遍历实例分析c++采用tls线程局部存储的用法实例c++中静态存储区与栈以及堆的区别详解rpc、rmi、soap的区别详解软件测试面试如何测试网页的登录页面微信小程序应用号开发教程详解可能是最通俗的一篇介绍markdown的文章分享18个最佳代码编辑器/ide开发工具ibatis简单实现与配置hadoop介绍与安装配置方法flyway数据库版本控制的教程详解web jmeter–接口测试工具详解ie条件语句 ie hack大全最新idea2020注册码永久激活(激活intellij idea2020永久破解,亲测intellij idea激活码获取方法(i删除svn三种方法delsvn(windows+c/s和b/s两种架构的概念、区别和网址(url)支持的最大长度是多少5个linux平台程序员最爱的开发工url中斜杠/和反斜杠\的区别小结提示“处理url时服务器出错”和“github代码常用指令(小结)mercurial入门学习介绍二维码的生成细节和原理win10 + anaconda3 + python3.6 安装tensmatlab中乘法“*”和点乘“.*”;除法“/教你免费做一个属于自己稳定有效的图床-p设计引导--一个鸭子游戏引发的设计理念(多戏说编码发展史delphi 本地路径的创建、清空本地指定文件支付宝 接口开发帮助(asp,php,asp.net,js
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved