千家信息网

诳言C言语变量和数据类型

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在《二进制思惟以及数据的存储》一节中讲到:盘算机要处置的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的方式寄存在内存中的;我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最
千家信息网最后更新 2026年10月31日诳言C言语变量和数据类型

在《二进制思惟以及数据的存储》一节中讲到:

  • 盘算机要处置的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的方式寄存在内存中的;

  • 我们将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=1000;a=9999;

第二次赋值,会把第一次的数据掩盖(擦除)失落,也就是说,a 中最初的值是9999,123、1000 曾经不存在了,再也找不回来了。
由于 a 的值可以改动,所以我们给它起了一个抽象的名字,叫做变量(Variable)。
int a;发明了一个变量 a,我们把这个进程叫做变量界说。a=123;把 123 交给了变量 a,我们把这个进程叫做给变量赋值;又由于是第一次赋值,也称变量的初始化,或许赋初值。
你可以先界说变量,再初始化,例如:

int abc;abc=999;

也可以在界说的同时停止初始化,例如:

int abc=999;

这两种方法是等价的。

变量界说的地位

在VC或VS下,变量界说要放在函数的扫尾;也就是说,在界说变量之前不克不及有其他代码。而在 GCC、Xcode 下,或许在运用了 GCC 编译器的 C-Free、Dev C++、Code::Blocks 下,变量界说可以放在函数的恣意地位。
例如,下面的代码在 VC、VS、GCC、Xcode 下多是准确的:

                      #include  int main() { int a = 10; int b = 1000; printf("BianChengBang"); return 0; }

对代码稍作修正,将 printf 语句放在变量 a、b 两头,如下所示:

                  #include  int main() { int a = 10; printf("BianChengBang"); int b = 1000; //在界说b变量之前有 printf 语句 return 0; }

修正后的代码在 GCC、Xcode 下是准确的,而在 VC、VS 下就是毛病的。
为什么分歧的编译器会有分歧的差别呢,基本缘由是什么呢?我们将在《C言语变量的界说地位以及初始值》和《C言语的两套规范》两节具体解说。

数据类型(Data Type)

数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并运用这份数据。但成绩是,该若何运用呢?
我们晓得,诸如数字、文字、符号、图形、音频、视频等数据多是以二进制方式存储在内存中的,它们并没有实质上的差别,那么,00010000 该了解为数字16呢,照样图像中某个像素的色彩呢,照样要收回某个声响呢?假如没有特殊指明,我们并不晓得。
也就是说,内存中的数据有多种说明方法,运用之前必需要肯定;下面的int a;就标明,这份数据是整数,不克不及了解为像素、声响等。int 有一个专业的称谓,叫做数据类型(Data Type)。
望文生义,数据类型用来阐明数据的类型,肯定了数据的说明方法,让盘算机和程序员不会发生歧义。在C言语中,有多种数据类型,例如:

说 明字符型短整型整型长整型单精度浮点型双精度浮点型无类型
数据类型charshortintlongfloatdoublevoid


这些是最根本的数据类型,是C言语自带的,假如我们需求,还可以经过它们构成愈加复杂的数据类型,前面我们会逐个解说。

延续界说多个变量

为了让程序的书写愈加简练,C言语支撑多个变量的延续界说,例如:

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

延续界说的多个变量以逗号,分隔,而且要具有相反的数据类型;变量可以初始化,也可以不初始化。

数据的长度(Length)

所谓数据长度(Length),是指数据占用若干个字节。占用的字节越多,能存储的数据就越多,关于数字来说,值就会更大,反之能存储的数据就无限。
多个数据在内存中是延续存储的,彼此之间没有分明的界线,假如不明白指明数据的长度,盘算机就不晓得何时存取完毕。例如我们保管了一个整数 1000,它占用4个字节的内存,而读取时却以为它占用3个字节或5个字节,这显然是不准确的。
所以,在界说变量时还要指明数据的长度。而这恰好是数据类型的别的一个感化。数据类型除了指明数据的说明方法,还指清楚明了数据的长度。由于在C言语中,每一种数据类型所占用的字节数多是固定的,晓得了数据类型,也就晓得了数据的长度。
在32位情况中,各类数据类型的长度普通如下:

说 明字符型短整型整型长整型单精度浮点型双精度浮点型
数据类型charshortintlongfloatdouble
长 度124448


C言语有若干种数据类型,每种数据类型长度是若干、该若何运用,这是每一位C程序员都必需要控制的,后续我们会逐个解说。

最初的总结

数据是放在内存中的,在内存中存取数据要明白三件工作:数据存储在哪里、数据的长度以及数据的处置方法。
变量名不只仅是为数据起了一个好记的名字,还通知我们数据存储在哪里,运用数据时,只需供给变量名即可;而数据类型则指清楚明了数据的长度和处置方法。所以诸如int n;、char c;、float money;如许的方式就肯定了数据在内存中的一切要素。
C言语供给的多种数据类型让程序愈加灵敏和高效,同时也添加了进修本钱。而有些编程言语,例如PHP、JavaScript等,在界说变量时不需求指明数据类型,编译器会依据赋值状况主动推上演数据类型,愈加智能。
除了C言语,Java、C++、C#等在界说变量时也必需指明数据类型,如许的编程言语称为强类型言语。而PHP、JavaScript等在界说变量时不用指明数据类型,编译零碎会主动推演,如许的编程言语称为弱类型言语。
强类型言语一旦肯定了数据类型,就不克不及再赋给其他类型的数据,除非对数据类型停止转换。弱类型言语没有这种限制,一个变量,可以先赋给一个整数,然后再赋给一个字符串。
最初需求阐明的是:数据类型只在界说变量时指明,并且必需指明;运用变量时无需再指明,由于此时的数据类型曾经肯定了。


数据 类型 变量 言语 内存 整数 长度 字节 区域 方法 存储 名字 如许 语句 数字 需求 肯定 代码 多个 浮点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 互联网科技保险 互联网巨头反垄断金融科技 互联网 科技创业 互联网高科技企业 互联网 科技服务平台 科技与互联网的利与弊 中国互联网有什么科技含量 北京华百购互联网科技有限公司 互联网时代科技改变生活 世界互联网科技公司市值排名 内蒙古九一互联网科技 中和天地互联网科技有限公司 山东星卡互联网科技有限公司官网 互联网科技股为什么大涨 互联网科技融合创新 工业互联网科技成果转化 互联网时代高科技布局 互联网的科技体现在哪里 科技发展第三阶段互联网时代 科技企业和互联网企业 南京欣网互联网科技 新华互联网科技校企合作 玖二柒互联网科技公司待遇 顶级互联网科技成果有哪些 栖莱科技互联网股份有限公司 移动互联网年度科技创新 互联网安防科技感 唐山双旺合互联网科技产业园 平安好医生打造互联网科技医疗
0