初识C语言之数据类型篇——带你窥探编程世界的风景!

简介: 初识C语言之数据类型篇——带你窥探编程世界的风景!

目录

数据类型

C语言数据类型

编程规范

关键字

标识符

数据类型

常量

整型常量

实型常量

字符型常量

转义字符

变量

整型变量

实型变量

字符型变量

变量的储存类别

混合运算

每文一语


数据类型

C语言数据类型

image.png

byte

  • 8位、有符号的以二进制补码表示的整数
  • min :    -128(-2^7)
  • max:   127(2^7-1)
  • default: 0
  • 对应包装类:Byte

short

  • 16位、有符号的以二进制补码表示的整数
  • min :    -32768(-2^15)
  • max:   32767(2^15 - 1)
  • default: 0
  • 对应包装类:Short

int

  • 32位、有符号的以二进制补码表示的整数
  • min :    -2,147,483,648(-2^31)
  • max:   2,147,483,647(2^31 - 1)
  • default: 0
  • 对应包装类:Integer

long

  • 64位、有符号的以二进制补码表示的整数
  • min :    -9,223,372,036,854,775,808(-2^63)
  • max:   9,223,372,036,854,775,807(2^63 -1)
  • default: 0
  • 对应的包装类:Long

float

  • 单精度、32位、符合IEEE 754标准的浮点数
  • float 在储存大型浮点数组的时候可节省内存空间
  • 浮点数不能用来表示精确的值,如货币
  • default: 0.0f
  • 对应的包装类:Float

double

  • 双精度、64位、符合IEEE 754标准的浮点数
  • 浮点数的默认类型为double类型
  • double类型同样不能表示精确的值,如货币
  • default: 0.0d
  • 对应的包装类:Double

char

  • char类型是一个单一的 16 位 Unicode 字符
  • 最小值是 \u0000(即为0)
  • 最大值是 \uffff(即为65,535)
  • char 数据类型可以储存任何字符
  • 对应的包装类:Character

boolean

  • boolean数据类型表示一位的信息
  • 只有两个取值:true 和 false
  • 这种类型只作为一种标志来记录 true/false 情况
  • 对应的包装类:Boolean

编程规范

代码缩进

代码缩进统一为4个字符。不采用空格,而用<Tab>键制表位。

image.png

变量、常量命名规范

在定义函数时,函数名的首字母要大写,其后的字母大小写混合。例如:

int AddTwoNum(int num1,int num2);

注释

尽量采用行注释。如果行注释与代码处于一行,则注释应位于代码右方。如果连续出现多个行注释,并且代码较短,则应对齐注释。例如:

1. int iLong; /*长度*/
2. int iWidth;  /*宽度*/
3. int iHieght    /*高度*/

关键字

image.png

标识符

标识符是什么?

C语言中为了在程序的运行过程中可以使用变量、常量、函数、数组等,就要为这些形式设定一个名称,而设定的名称就是所谓的标识符。

C语言标识符应该遵守的一些命名规则

所有标识符必须由字母或下划线开头,而不能使用数字或者符号作为开头

int !number;  /*错误,标识符第一个字符不能为符号*/
int 2hao; /*错误,标识符第一个字符不能为数字*/
int number; /*正确,标识符第一个字符为字母*/
int _hao; /*正确,标识符第一个字符为下划线*/

在设定标识符时,除开头外,其他位置都可以由字母、下划线或数字组成

int good_way; /*正确,标识符中可以有下划线*/

在标识符中,可以有数字

1. int bus7;    /*正确,标识符中可以有数字*/
2. int car6V;   /*正确*/

英文字母的大小写代表不同的标识符,也就是说,在C语言中是区分大小写字母的

1. int mingri;  /*全部是小写*/
2. int MINGRI;  /*全部是大写*/
3. int MingRi;  /*一部分是小写,一部分是大写*/

标识符不能是关键字

1. int int;   /*错误!*/
2. int Int;   /*正确,改变标识符中的字母为大写*/

标识符的命名最好具有相关的含义

1. int a;   /*代表长度*/
2. int b;   /*代表宽度*/
3. int c;   /*代表高度*/
4. int iLong;
5. int iWidth;
6. int iHeight;

ANSI标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分

数据类型

20210410110512686.png

常量

整型常量

无符号短整型

无符号短整型的取值范围是065535,而符号短整型的取值范围是-32768+32767,这些都是16位整型常量的范围

整型

无符号短整型的取值范围是065535,而符号短整型的取值范围是-32768+32767,这些都是16位整型常量的范围

实型常量

科学计数方式

科学计数方式就是使用十进制的小数方法描述实型,例如:

SciNum1=123.45;  /*科学计数法*/
SciNum2=0.5458;


指数方式

有时候实型非常大或者非常小,这样使用科学计数方式是不利于观察的,这时可以使用指数方法显示实型常量。其中,使用字母e或者E进行指数显示,如45e2表示的就是4500,而45e-2表示的就是0.45。例如上面的SciNum1和SciNum2代表的实型常量,改使用指数方式显示这两个实型常量如下所示:


SciNum1=1.2345e2;  /*指数方式显示*/
SciNum2=5.458e-1;

字符型常量

字符常量

使用单撇号括起一个字符,这种形式就是字符常量。例如,'A'、'#'、'b'等都是正确的字符

常量。在这里需要注意以下几点有关使用字符常量的注意事项。


字符常量中只能包括一个字符,不是字符串。例如:'A'是正确的,但是用'AB'来表示字符 常量就是错误的。

字符常量是区分大小写的。例如:'A'字符和'a'字符是不一样的,这两个字符代表着不同 的字符常量。

'这对单撇号代表着定界符,不属于字符常量中的一部分。

字符串常量是用一组双引号括起来的若干字符序列。如果在字符串中一个字符都没有,将其称作空串,此时字符串的长度为0。例如“Have a good day!”和“beautiful day”即为字符串常量。


C语言中存储字符串常量时,系统会在字符串的末尾自动加一个“\0”作为字符串的结束标志。


例如字符串“welcome”在内存中的存储形式如图所示。

image.png

转义字符

转义符号在字符常量中是一种特殊的字符。转义字符是以反斜杠“\”开头的字符,后面跟一个或几个字符。常用的转义字符及其含义如表所示。

image.png

变量

整型变量

整型变量是用来存储整型数值的变量。整型变量可以分为6种类型,其中基本类型的符号使用int关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字short或long。下表是这6种类型的介绍。

image.png

实型变量

实型变量也称为浮点型变量,是指用来存储实型数值的变量,其中实型数值是由整数和小数两部分组成的。实型变量根据实型的精度也可以分为3种类型,包括单精度类型、双精度类型和长双精度类型。下表是这3种类型的介绍。

image.png

字符型变量


字符型变量是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。


字符型变量在内存空间中占一个字节,取值范围是-128~127。


定义一个字符型变量的方法是使用关键字char,例如要定义一个字符型的变量cChar,为cChar变量赋值为‘a’的方法如下:

char cChar; /*定义字符型变量*/
cChar= 'a'; /*为变量赋值*/

变量的储存类别

动态存储与静态存储

从变量的产生时间上可以分为静态存储和动态存储。 

静态存储就是指程序运行分配的固定的存储方式,而动态存储则是在程序运行期间根据需要动态地分配存储空间

auto变量

auto关键字就是修饰一个局部变量为自动的,这意味着每次执行到定义该变量的时候,都会产生一个新的变量,并且对其重新进行初始化。

static变量

static变量为静态变量,将函数的内部和外部变量声明成static变量的意义是不一样的(有关函数的内容在本书的后续章节进行介绍)。不过对于局部变量来说,static变量是和auto变量相对而言的。尽管两者的作用域都是仅限于声明变量的函数之中,但是在语句块执行期间,static变量将始终保持它的值,并且初始化操作只在第一次执行时起作用。在随后的运行过程中,变量将保持语句块上一次执行时的值。

register变量

register变量称为寄存器存储类变量。使用register的目的在与让程序员指定把某个局部变量存放在计算机的某个硬件寄存器而不是内存中。这样的好处是可以提高程序的运行速度。不过,这只是反映了程序员的主观意愿,实际上编辑器可以忽略register对变量的修饰。

用户无法获得寄存器变量的地址,因为绝大多数计算机的硬件寄存器都不占用内存地址。而且,即使编译器忽略register而把变量存放在可设定的内存中,也是无法获取变量的地址的。

如果想有效地利用寄存器register关键字,必须像汇编语言程序员那样了解处理器的内部结构,知道可用于存放变量的寄存器的数量、种类以及工作方式。但是,在不同的计算机对于这些细节可能是不同的,因此,对于一个要具备可移植的程序来说,register的作用并不大。

extern变量

extern变量称为外部存储变量。extern声明了程序中将要用到但尚未定义的外部变量。通常,外部存储类都用于声明在另一个转换单元中定义的变量。

一个工程是由多个C文件组成的。这些源代码文件分别编译,然后链接成一个可执行模块。把这样的一个程序作为一个工程进行管理,并且生成一个工程文件来记录所包含的所有源代码文件。

混合运算

不同类型之间可以进行混合运算,例如10+'a'-1.5+3.2*6

在进行这样的计算时,不同类型的数据要先转化成同一类型,然后进行运算。转化的方式如图所示。

image.png


相关文章
|
30天前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
39 1
|
1月前
|
NoSQL C语言 索引
十二个C语言新手编程时常犯的错误及解决方式
C语言初学者常遇错误包括语法错误、未初始化变量、数组越界、指针错误、函数声明与定义不匹配、忘记包含头文件、格式化字符串错误、忘记返回值、内存泄漏、逻辑错误、字符串未正确终止及递归无退出条件。解决方法涉及仔细检查代码、初始化变量、确保索引有效、正确使用指针与格式化字符串、包含必要头文件、使用调试工具跟踪逻辑、避免内存泄漏及确保递归有基准情况。利用调试器、编写注释及查阅资料也有助于提高编程效率。避免这些错误可使代码更稳定、高效。
231 12
|
1月前
|
C语言
3.4 C语言基本数据类型2
在C语言中,声明一个整型(int)变量时,需先写入&#39;int&#39;关键字,后跟变量名并以分号结尾。若同时声明多个变量,可在&#39;int&#39;后用逗号分隔列出所有变量名。例如,`int erns;` 或 `int hogs, cows, goats;` 都是合法声明。变量声明后需通过赋值语句如 `cows = 112;` 或使用函数如 `scanf()` 来初始化其值。
44 10
|
1月前
|
存储 程序员 C语言
3.1 C语言基本数据类型
在C语言中,整数类型如`int`类型是很有用的,它属于有符号整型,意味着该类型的值必须是整数,并且可以是正整数、负整数或者零。`int`类型的数值范围依据计算机系统有所不同,通常取决于系统的位宽。例如,在早期16位的IBM PC兼容机上,`int`类型使用16位存储,取值范围为-32768至32767;而在当前32位系统中,使用32位存储,拥有更宽泛的取值范围。随着64位处理器的普及,`int`类型能够存储的整数范围将进一步扩大。根据ISO C标准,`int`类型的最小取值范围被规定为-32768到32767。系统通常会利用一个特殊的位来表示整数的正负。
34 10
|
1月前
|
C语言
3.1C语言基本数据类型
在C语言中,初始化变量是指为变量设定初始值,通常在声明时直接完成,例如 `int cows=32;`。应注意避免在同一语句中混合初始化与未初始化的变量,如 `int dogs, cats=94;` 这样的写法容易引起误解。此外,整型常量如21、32等在C语言中被视为int类型,但非常大的整数则不然,且带有小数点或指数的数值不属于整型常量。
27 9
|
2月前
|
存储 算法 Linux
C语言 多进程编程(一)进程创建
本文详细介绍了Linux系统中的进程管理。首先,文章解释了进程的概念及其特点,强调了进程作为操作系统中独立可调度实体的重要性。文章还深入讲解了Linux下的进程管理,包括如何获取进程ID、进程地址空间、虚拟地址与物理地址的区别,以及进程状态管理和优先级设置等内容。此外,还介绍了常用进程管理命令如`ps`、`top`、`pstree`和`kill`的使用方法。最后,文章讨论了进程的创建、退出和等待机制,并展示了如何通过`fork()`、`exec`家族函数以及`wait()`和`waitpid()`函数来管理和控制进程。此外,还介绍了守护进程的创建方法。
C语言 多进程编程(一)进程创建
|
1月前
|
存储 C语言
初识C语言:常量与变量中寻找数据类型
初识C语言:常量与变量中寻找数据类型
|
2月前
|
存储 C语言 索引
C 语言数据类型详解
C语言中的数据类型主要包括基本数据类型、构造数据类型和用户定义数据类型。基本类型如整型(`int`)、字符型(`char`)、浮点型(`float`)、双精度浮点型(`double`)和无符号整型(`unsigned int`)。构造类型包括数组(`Array`)、结构体(`Struct`)、共用体(`Union`)和枚举(`Enum`)。用户定义类型则通过`typedef`为已有类型定义新名称,并可通过结构体和共用体自定义复合数据结构。此外,还有指针类型用于存储变量地址,以及`signed`、`unsigned`、`short`、`long`等类型修饰符。
90 11
|
2月前
|
存储 C语言
【C语言基础考研向】02 数据类型-常量-变量
本文介绍了编程中的基本概念,包括数据类型分类、常量与变量的定义及使用。首先概述了四大类数据类型:基本类型(整型、浮点、字符型)、构造类型(数组、结构体)、指针类型和空类型。接着阐述了常量与变量的区别及命名规则,并详细说明了整型、浮点型和字符型数据的特点与应用。最后总结了常见的易错点,如字符串与字符常量的区别及浮点数的默认输出格式。
|
1月前
|
存储 编译器 程序员
C语言数据类型详解
C语言数据类型详解