2.1错误和警告

  如果输入这个程序的过程中出现错误(error),比如少了一个分号,编译器会给出语法错误消息。即使输入正确,编译器还可能发出这样的警告(warning):“警告------从double类型转换为float类型时可能丢失数据。”错误消息表明程序中存在错误,不能对其编译。警告则表明尽管代码正确但有可能不是程序员所要的。警告不终止编译。这里的的警告和C语言怎样处理770这样的值有关。

2.2数据:数据类型和关键字

1.位、字节和字

  术语位、字节和字用于描述计算机数据单位或计算机存储单位。这里主要指存储单位。

  最小的存储单位为位(bit)。它可以容纳两个值(0或1)之一。不能在一个位中存储更多的信息,但是计算机中包含数量极多的位。位计算机存储单位的基本单位。

  字节(byte)是常用的计算机存储单位。

2.浮点数

  浮点数与整数的存储方案不一样。浮点数表示法将一个数分为小数部分和指数部分并分别存储。

  整型和浮点型在应用中的区别:

  1.整数没有小数部分;浮点数可以有小数部分

  2.浮点数表示比整数范围大得多的数

  3.对于一些算数运算(例如两个很大的数相减),使用浮点数会损失更多精度

  4.因为在任何区间内(比如1.0和2.0之间)都存在无穷多个实数,所以计算机浮点数不能表示区域内的所有值。浮点数往往只是实际值的近似。

  5.浮点运算通常比整数运算慢。不过,已经开发出来了专门处理浮点运算的微处理器,它可以缩小速度上的差别。

2.3 C和数据类型

1.整型

  ①声明int变量

  int erns;

  以上变量声明创建了变量但没有为其赋值。

  ②初始化变量

  初始化(initialize)变量就是为变量赋一个初始值。声明语句为变量创建、标定存储空间并为其指

  ③int类型常量

  C把不含小数点和指数的数当做整数

  ④八进制和十六进制

  前缀0x或者OX表示使用十六进制,前缀0表示使用八进制

  ⑤显示八进制和十六进制

  如果想显示C语言前缀,可以使用说明符%#o、%#x、%#X分别生成0、0x和0X前缀。

2.其他整数类型

  ①使用多种整数类型的原因

  为什么说long和short类型“可能”占比int类型更多或者更少的存储空间呢?因为C仅保证short类型不会比int类型长,并且long类型不会比int短。这样做是为了适应不同的机器。

  一般情况,long long类型64位,long类型为32位,short类型为16位,int类型为16位或者32位(依机器的自然字节大小而定)。

  ②long常量和long long常量

  八进制和十六进制常量通常被称为int类型。如果值过大,编译器会试用unsigned int,如果不够大,编译器会依次试用long、unsigned long、long long和unsigned long long类型。

  ③打印short、long、long long和unsigned long类型数

  要打印unsigned int数字,可以使用%u符号。打印long数值,可以使用%ld格式说明符。可以对short类型使用h前缀,因此%hd表示以十进制显示short整数,%ho表示以八进制显示short整数。

  不论使用%hd还是%d,short类型变量end的显示结果相同。这是因为在传递函数参数时C自动将short类型的值转换为int类型。这时可能会有两个疑问:为什么要进行这样的转换?h修饰符的用处是什么?第一个问题的答案是:int类型被认为是计算机处理起来最方便有效的整数类型,所以在short类型和int类型长度不同的系统中,使用int类型值进行参数转移的速度更快;第二个问题的答案是:可以使用h修饰符显示一个较长的整数被截为short类型值时的样子。

3.使用字符:char类型

  char类型用于存储字母和标点符号之类的字符。但在技术实现上char却是整数类型,这是因为char类型实际存储的是整数而不是字符。

  ①字符常量及其初始化

  char grade = 'A';

  char broiled;

  broiled = 'T';

  char grade = 65;

  ②非打印字符

  ③打印字符

  printf()说明符决定数据的显示方式不是决定数据的存储方式

4._Bool类型

5.可移植的类型:inttypes.h

  C99提供了一个可选的名字集合,以确切地描述有关信息。例如,int6_t表示一个16位有符号整数类型,uint32_t表示一个32位无符号整数类型。

  要使这些名字对于程序有效,应当在程序中包含inttyoes.h头文件。与int不同,uint32_t不是关键字,所以必须在程序中包含inttypes.h头文件,编译器才能识别它。

  保证所表示的类型至少大于指定长度的最小类型,被称为“最小长度类型”(minimum width type)。例如,int_least8_t是可以容纳至少8位有符号数的那些类型中长度最小的一个的别名。

  当然一些程序员更加关注速度而非空间。C99为他们定义了一组可使计算达到最快的类型集合。这类集合被称为“最快最小长度类型”(fastest minimum width type)。例如,把int_fast8_t定义为系统中对8位有效符号数而言计算机快的整数类型的别名。

  C99不仅提供这些新的、可移植的类型名,还提供了对这些类型数据进行输入输出的方法。

6.参数和易犯的错误

  传递给函数的信息被称为参数。例如,函数调用printf("Hello, pal")包含一个参数“Hello, pal”。与之类似的,函数调用scanf("%d",&weight)包含两个参数:"%d"和&weight。C用都好隔开函数调用中的多个参数。printf()和scanf()函数比较特殊,其参数数目可以不受限制。

第二章 数据和C的更多相关文章

  1. 【知识强化】第二章 数据的表示和运算 2.4 算术逻辑单元ALU

    从本节开始我们就进入到本章的最后一节内容了,也就是我们算术逻辑单元的它的实现.这部分呢是数字电路的一些知识,所以呢,如果你没有学过数字电路的话,也不要慌张,我会从基础开始给大家补起.那么在计算机当中, ...

  2. KnockoutJS 3.X API 第二章 数据监控(1)视图模型与监控

    数据监控 KO的三个内置核心功能: 监控(Observable)和依赖性跟踪(dependency tracking) 声明绑定(Declarative bindings) 模板(Templating ...

  3. KnockoutJS 3.X API 第二章 数据监控(2)监控属性数组

    监控属性数组 如果要对一个对象检测和响应变化,会使用监控属性.如果要对一个序列检测并监控变化,需要使用observableArray(监控属性数组).这在你显示或编辑多个值,需要用户界面的部分反复出现 ...

  4. MyBatis从入门到精通:第二章数据的创建与插入文件

    数据库表的创建: create table sys_user ( id bigint not null auto_increment, ), user_password ), user_email ) ...

  5. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  6. Laxcus大数据管理系统2.0(5)- 第二章 数据组织

    第二章 数据组织 在数据的组织结构设计上,Laxcus严格遵循数据和数据描述分离的原则,这个理念与关系数据库完全一致.在此基础上,为了保证大规模数据存取和计算的需要,我们设计了大量新的数据处理技术.同 ...

  7. 第二章 约束和排序数据(SQL基础)

    第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息:                注意:使用 between 下边界 and 上边界时,条件包括边界值: ...

  8. sql系列(基础)-第二章 限制和排序数据

    更好的看↑代码点击VIEW PLAN 第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息: 注意:使用 between 下边界 and 上边界时.条件包括 ...

  9. CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  10. Laxcus大数据操作系统2.0(5)- 第二章 数据组织

    第二章 数据组织 在数据的组织结构设计上,Laxcus严格遵循数据和数据描述分离的原则,这个理念与关系数据库完全一致.在此基础上,为了保证大规模数据存取和计算的需要,我们设计了大量新的数据处理技术.同 ...

随机推荐

  1. 拓展django-haystack全文检索的样式和搜索频率限制

    一.样式: django-haystack在utils模块中封装了HighHighlighter用于配置搜索结果的样式展示.想要更改结果的样式,可以写个子类重写相应的方法达到效果 1.关键字高亮: H ...

  2. Alfred 好用工具分享

    好用的mac工具分享 1.带历史记录的剪切板 根据快捷键切换选择保存的数据 2.创建热键工作流程 将常用的工具变为热键,快捷切换 如何创建: 设置热键 单击右键 创建actions 打开app 然后将 ...

  3. JavaScript 调用Bomb后端云

                                                     用简单的代码 展示代码的魅力 Bmob 是后端云 全方位一体化的后端服务平台 提供可靠的 Server ...

  4. 用java读取Excel并依据模板图生成对应的图片

    package test; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import java. ...

  5. postgresql--column must appear in the group by clause or be used in an aggregate function

    我想得到大于男女平均年龄的人 原表: 在gauss200下执行以下语句: SELECT stname,age,gender,AVG(age) FROM att_test01 GROUP BY gend ...

  6. git 切换分支 初始化

    常见的错误 报错内容基本都是error: failed to push some refsto'远程仓库地址'. 导致产生原因 我们想把自己本地的某个项目关联到远程仓库并推送上去 操作 本地项目-&g ...

  7. 4组-Alpha冲刺-6/6

    一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15574385.html 小组人数:8人 二.冲刺概况汇报 组长:许雅萍 过去两天 ...

  8. CSS设置边距

    1.内边距 所有的 ​HTML ​元素基本都是以矩形为基础. 每个 HTML 元素周围的矩形空间由三个重要的属性来控制: ​padding(内边距)​ ​margin(外边距)​ ​border(边框 ...

  9. 内部类(Java)

    内部类 基本介绍 概念:在一个类的内部再定义一个完整类 特点:编译之后可生成独立的字节码文件:内部类可以直接访问外部类的私有属性,不破坏封装性 分类:成员内部类:静态内部类:局部内部类:匿名内部类 p ...

  10. pwm 理解

    PWM:  假设PWM的时钟主频是 PWM_CLK_FREQ Hz,则如果需要输出频率为 xHz,占空比为 y% 的波形时, 则只需要在定时器的周期寄存器中写入(PWM_CLK_FREQ / x),在 ...