从数据在内存中的存储方式中可以得知

 计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的;我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单元。

我们先从最简单的整数说起,看看它是如何放到内存中去的。

变量(Variable)

在生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到。计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放整数,并起一个好记的名字,方便以后查找。这块区域就是“小箱子”,我们可以把整数放进去了。

C语言中这样在内存中找一块区域:

int a;

int又是一个新单词,它是 Integer 的简写,意思是整数。a 是我们给这块区域起的名字;当然也可以叫其他名字,例如 abc、mn123 等。

这个语句的意思是:在内存中找一块区域,命名为 a,用它来存放整数。

 int 和 a 之间是有空格的,它们是两个词。也注意最后的分号,int a表达了完整的意思,是一个语句,要用分号来结束。

不过int a;仅仅是在内存中找了一块可以保存整数的区域,那么如何将 123、100、999 这样的数字放进去呢?

C语言中这样向内存中放整数:

a=123;

=是一个新符号,它在数学中叫“等于号”,例如 1+2=3,但在C语言中,这个过程叫做赋值(Assign)。赋值是指把数据放到内存的过程。

把上面的两个语句连起来:

int a;
a=123;

就把 123 放到了一块叫做 a 的内存区域。你也可以写成一个语句:

int a=123;

a 中的整数不是一成不变的,只要我们需要,随时可以更改。更改的方式就是再次赋值,例如:

int a=123;
a=6666;
a=8888;

第二次赋值,会把第一次的数据覆盖(擦除)掉,也就是说,a 中最后的值是8888、6666已经不存在了,再也找不回来了。

因为 a 的值可以改变,所以我们给它起了一个形象的名字,叫做变量(Variable)。

int a;创造了一个变量 a,我们把这个过程叫做变量定义。a=123;把 123 交给了变量 a,我们把这个过程叫做给变量赋值;又因为是第一次赋值,也称变量的初始化,或者赋初值。

你可以先定义变量,再初始化,例如:

int abc;
abc=333;

也可以在定义的同时进行初始化,例如:

int abc=333;

这两种方式是等价的。

数据类型(Data Type)

数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并使用这份数据。但问题是,该如何使用呢?

我们知道,诸如数字、文字、符号、图形、音频、视频等数据都是以二进制形式存储在内存中的,它们并没有本质上的区别,那么,00010000 该理解为数字16呢,还是图像中某个像素的颜色呢,还是要发出某个声音呢?如果没有特别指明,我们并不知道。

也就是说,内存中的数据有多种解释方式,使用之前必须要确定;上面的int a;就表明,这份数据是整数,不能理解为像素、声音等。int 有一个专业的称呼,叫做数据类型(Data Type)。

顾名思义,数据类型用来说明数据的类型,确定了数据的解释方式,让计算机和程序员不会产生歧义。在C语言中,有多种数据类型,例如:

说 明 数据类型
字符型 char
短整型 short
整型 int
长整型 long
单精度浮点型 float
双精度浮点型 double
无类型 void

为了让程序的书写更加简洁,C语言支持多个变量的连续定义,例如:

int a, b, c;
float m = 10.9, n = 20.56;
char p, q = '@';

连续定义的多个变量以逗号,分隔,并且要拥有相同的数据类型;变量可以初始化,也可以不初始化。

数据的长度(Length)

所谓数据长度(Length),是指数据占用多少个字节。占用的字节越多,能存储的数据就越多,对于数字来说,值就会更大,反之能存储的数据就有限。

多个数据在内存中是连续存储的,彼此之间没有明显的界限,如果不明确指明数据的长度,计算机就不知道何时存取结束。例如我们保存了一个整数 1000,它占用4个字节的内存,而读取时却认为它占用3个字节或5个字节,这显然是不正确的。

所以,在定义变量时还要指明数据的长度。而这恰恰是数据类型的另外一个作用。数据类型除了指明数据的解释方式,还指明了数据的长度。因为在C语言中,每一种数据类型所占用的字节数都是固定的,知道了数据类型,也就知道了数据的长度。

各种数据类型的长度如下:


如果感觉不错的话请给我点赞哟!!!

C语言变量和数据类型相关推荐

  1. C语言变量和数据类型及数据长度

    ** C语言变量和数据类型 ** 相关概念 变量(variable):内存中可以改变的数据. 如: int a;//在内存中找一块区域命名为a,用它存放整数,进行变量定义 a=123;//把123交给 ...

  2. 学长教你学C-day5-C语言变量与数据类型

      小韩是一个学习比较刻苦认真的学生,虽然老师上课进度刚讲到输入输出,但是小韩已经自学到C语言指针部分的内容了.但是进度太快的弊端就是有些东西很难消化吸收,这不就遇到了问题,来请教小刘:"学 ...

  3. C语言——变量与数据类型

    1.回常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据. 2.C语言中的基本数据类型包括整型.单精度浮点型.双精度浮点型和字符型. 3.回单精度浮点型和双精 ...

  4. c语言变量radius数据类型,c语言数据类型

    分为数值类型,非数值类型. 数值类型包括,整形int,短整形short int,长整形long int,单精度浮点型float,双精度浮点型double. 其他的,比如数组,结构体,枚举. 非数值类型 ...

  5. STC单片机C语言中的数据类型,stc单片机c语言程序设计 第9章 stc单片机c语言数据类型.pdf...

    STC单片 机C语言变量和数据类型 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C语言中的常量和变量 对于基本数据类型,按其值是否可变又分为常量和变量两种. ...

  6. 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量

    一.学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. ...

  7. c语言命名规则_C语言的基本数据类型及变量

    学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 了解C语言程序的基本数据类型及概念的使用方法擦 在C语言编程中,系统定 ...

  8. OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

    OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...

  9. python语言变量随时命名随时赋值_Python变量及数据类型用法原理汇总

    变量(Variable)可以看成一个小箱子,专门用来"盛装"程序中的数据.每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据. 从底层看,程序中的数据最终都要放到内存 ...

最新文章

  1. JUC并发编程四 并发架构--并发之共享模型
  2. 笔记-高项案例题-2016年上-整体管理+风险管理
  3. ACL 2020 开源论文 | 基于Span Prediction的共指消解模型
  4. docker 网络模型
  5. 想到Exchanger N parties的一种用法
  6. java可以使用python的库函数_java调用python方法总结
  7. python井字棋ai_[Python100行系列]-井字棋游戏
  8. 各种ActiveX控件下载地址分享
  9. Hive教程(08)- JDBC操作Hive
  10. 思科的DUO解决方案到底是什么?
  11. 【CSS3】模拟太阳系八大行星运行轨迹
  12. Docker API的
  13. eclipse cdt + rse文件保存遇到的问题
  14. 量子科技商业化寻路,资本造势但技术落地成难|科股宝
  15. 无法找到合适的显示设备.正在关闭程序
  16. 不评价别人的生活,是一个人最基本的修养
  17. 六个步骤教你学会用ZBrush绘制头部模型
  18. php fpm工作原理,phpfpm工作原理是什么?
  19. c# distinct用法
  20. html简洁风格的个人博客网站模板(源码)

热门文章

  1. java 方法重载的作业_java第六章 方法及方法重载 课堂笔记、作业
  2. java pair class,在Java Pair Class Tuple中获取值
  3. win7系统电脑语言栏怎么更换输入法
  4. Win7怎么设置文件共享 Win7共享设置方法
  5. bazel 链接_bazel-链接第三方动态库,静态库。
  6. springboot使用jxls导出excel___(万能通用模板)--- SpringBoot导入、导出Excel文件___SpringBoot整合EasyExcel模板导出Excel
  7. @requestbody和@requestparam作用
  8. JAVA SSM框架+Redis 实现单点登录
  9. mybatis plus 导出sql_软件更新丨mybatis-plus 3.0.7 发布,辞旧迎新
  10. windows分屏_windows内到底藏了多少好东西?