一、概述

  C 语言包含的数据类型如下图所示:

二、各种数据类型介绍

2.1 整型

  整形包括短整型、整形和长整形。

2.1.1 短整形

  short a=1;

2.1.2 整形

  一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下:

  地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b

  数据:  78      56        34      12

  定义:用int关键字,举例如下:

  int a=6;

2.1.3 长整形

  long a=10;

2.2 浮点型

  浮点型包括单精度型和双精度型。

2.2.1 单精度型

  浮点型,又称实型,也称单精度。一般占4个字节(32位),

  float a=4.5;

  地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b

  数据:  00      00        90      40

2.2.2 双精度型

  一般占8个字节(64位)

  double a=4.5;

  地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b  0x0012ff7c  0x0012ff7d  0x0012ff7e  0x0012ff7f

  数据:  00      00        00      00      00        00      12      40

2.3 字符类型

  在各种不同系统中,字符类型都占一个字节(8位)。定义如下:

  char c='a';

  也可以用字符对应的ASCII码赋值,如下:

  char c=97;

三、常量及变量

常量:在程序运行过程中,其值不可改变的量

  常量定义格式:const 类型 名称

变量:在程序运行过程中,其值可以改变的量

  变量定义格式:类型 名称

基本数据类型:整型,字符型,实型(浮点型)

整型:int  int = 4

  长整型:long (long int)                        long = 8

  短整型:short (short int)                      short = 2  

实型(浮点型):

  单精度:float                                       float = 4

  双精度:double                                    double = 8

字符型:char   ASCII‘1’,‘A’   char = 1

short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。

表示有无符号时需要人为指定:(默认由符号)

  有符号:signed

  无符号:unsigned

  不写,编译器默认是有符号数

程序中的整数,默认是int,小数默认是double

变量:代表具有名字的一块存储空间

四、标识符的命名规范

1. 只能有数字,字母,下划线组成

2. 首字符不能是数字

3. 区分大小写

4. 不能是关键字(保留字),关键字是唯一代表某一个意思的字符集合

5. 习惯性命名

  n、i、j 等通常作为循环变量使用

  程序中不得出现仅靠大小写区分的相似的标识符  x X, o O

  含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组(getAaaBbbCcc)

  匈牙利命名法:变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等

    作用域前缀命名规则 (global,function,auto) gAaaBbbCcc

    数据类型前缀命名规则 (char,int,float,long,double,unsigned) iAaaBbbCcc

  骆驼命名法(camel):当标识符由多个词组成时,第一个词的首字母小写,以后每个词的第一个字母大写,其余全部小写  aaaBbbCcc

  帕斯卡命名法(pascal):当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写  AaaBbbCcc

    对比:骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

  下划线分割多个词法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍  aaa_bbb_ccc

  

  所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词

  禁止使用函数名作为某一个变量名

  命名应当直观且可以拼读,可望文知意,便于记忆和阅读

五、说明

1. C语言中的语句是以分号结尾的表达式

2. sizeof关键字是用来计算所占空间大小的

3. 定义变量时,若不初始化,则其值不确定

4. 定义常量时,若不初始化,则该常量无意义

因此常量定义时必须初始化。

六、隐式转换

规则:

  1. 短字节向长字节看齐

  2. float向double看齐

  3. 整数向浮点数看齐

  4. 由符号向无符号看齐

    高 double(8)  <——  float (4)

    ^ long (8)

    ^ unsigned(4)

    低 int(4) <—— short(2)  <—— char(1)

七、续

  对字符的理解:计算机发明是用来处理数据的,也就是对(整型int,浮点型float,double)这些数据的处理,这些都好处理(进制转换—>二进制)直接编码。随着发展,人们向想来处理字符,但字符怎么转换成二进制,于是就又有了编码(ascii,utf-8,gbk),先把字符(汉字)或其他语言转换成数字,再将数字转换为二进制存进计算机,所以高级语言编程字符以上级别的语言都要在编译阶段转换成数字(十/八/十六进制)在汇编阶段转换成二进制最终存进计算机中。

C 碎片二 数据类型的更多相关文章

  1. (C/C++学习笔记) 二. 数据类型

    二. 数据类型 ● 数据类型和sizeof关键字(也是一个操作符) ※ 在现代半导体存储器中, 例如在随机存取存储器或闪存中, 位(bit)的两个值可以由存储电容器的两个层级的电荷表示(In mode ...

  2. python(二)数据类型

    一.整数 创建方法 i = 10 i = int(10) i = int("10",base=2)  #“”中是几进制的表示,base是选择要表示的进制,如base=2,用2进制的 ...

  3. Redis 学习(二) —— 数据类型及操作

    Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...

  4. Redis学习之二 数据类型和相关命令

    原文:https://www.cnblogs.com/lonelyxmas/p/9073928.html 如果还不懂安装的,请看 Windows环境下安装Redis Redis一共支持五种数据类型 1 ...

  5. python基础(二)----数据类型

    Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...

  6. Python学习总结之二 -- 数据类型

    带你走进数据类型 一:整数.浮点数 Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python相对于C/C++而言,定义整数没有int 和 long ...

  7. JNI学习积累之二 ---- 数据类型映射、域描述符说明

    本文原创,转载请注明出处:http://blog.csdn.NET/qinjuning 在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 . 在JNI的世界里也存在类似的数据类型,与 ...

  8. C语言学习笔记二---数据类型运算符与表达式

    一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/   b.// 二.C的常用输 ...

  9. python 基础二-----数据类型和控制语句

    一.数据类型: 1)数据类型 1.整数(int) 2.浮点数(float) 3.字符串(string) 4.列表(list) 5. 元组(tuple) 6.字典(dict): key和value是一一 ...

随机推荐

  1. 性能分析工具 DotTrance

    1 本例子采用dotTrace 5.3 版本 运行dotTrace 5.3 .exe 选择独立应用程序 Standalone    Application 选择需要测试的应用程序exe的路径 点击啊开 ...

  2. Redis简介及基础知识

    一.Redis简介 Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 string( ...

  3. shell批量创建用户随机密码

    批量创建用户随机密码企业面试题3:批量创建10个系统帐号usr01-usr10并设置密码(密码为随机8位字符串). #! /bin/bash . /etc/init.d/functions Path= ...

  4. Servlet编程实例

    ---------------siwuxie095 登录实例: 从 login.jsp 提交登录信息到 LoginServlet,在 LoginServlet 中打印登录信息 工程结构目录如下: Lo ...

  5. storm shell命令源码分析-shell_submission.clj

    当我们在shell里执行storm shell命令时会调用shell_submission.clj里的main函数.shell_submission.clj如下: shell_submission.c ...

  6. C#内存管理之托管堆与非托管堆( reprint )

    在 .NET Framework 中,内存中的资源(即所有二进制信息的集合)分为“托管资源”和“非托管资源”.托管资源必须接受 .NET Framework 的 CLR (通用语言运行时)的管理(诸如 ...

  7. Cactus详细讲解

    Cactus建议一年以上有经验的人玩,刚入门MVC,不了解下列组件请先自行学习,切勿好高骛远. Cactus的组成(基于.net4.5.2):Dapper+MVC4+autofac 前端css框架pu ...

  8. 2018CCPC网络赛A(优先队列,思维)

    #include<bits/stdc++.h>using namespace std;priority_queue<pair<int,int>>q;int main ...

  9. c++第六次实验

    part 1 验证性实验 合并两个文件.虽说验证,但后两个实验均受该代码指导启发. part 2  文末添加数据 1.代码 #include<fstream> #include<io ...

  10. sg函数和nim游戏的关系

    sg函数和nim游戏的关系 本人萌新,文章如有错漏请多多指教-- 我在前面发了关于nim游戏的内容,也就是说给n堆个数不同的石子,每次在某个堆中取任意个数石子,不能取了就输了.问你先手是否必胜.然后只 ...