C语言数据类型变量与常量分类体系及核心用法

C语言数据类型变量与常量分类体系及核心用法

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!

1.数据类型

1.1 基本数据类型

1. 整型Integer

int:通常用来表示整数,在不同的编译器和系统环境下,其占用的字节数可能有所不同,常见的是 4 个字节,能表示一定范围的整数值(例如在 32 位系统中,范围大致是 -2147483648 到 2147483647)。

short int(或 short):一般占用 2 个字节,所能表示的整数范围比 int 小,适用于只需较小整数范围的情况,可节省内存空间。

long int(或 long):通常占用 4 个字节或 8 个字节(取决于编译器和系统),能表示的整数范围比 int 更宽,用于需要较大整数范围的场景。

long long int(或 long long):一般占用 8 个字节,可表示非常大的整数范围,常用于对大整数有要求的运算等情况。

2. 浮点型Floating-point

float:单精度浮点型,占用 4 个字节,用于表示带有小数部分的实数,不过其精度相对有限,能表示的有效数字大约是 6 到 7 位。

double:双精度浮点型,占用 8 个字节,精度比 float 高,能表示的有效数字通常在 15 到 16 位左右,常用于对精度要求较高的数值计算场景,比如科学计算等。

long double:一般比 double 具有更高的精度,不同编译器下其占用字节数可能不同,常用于需要极高精度的特殊数值处理情况。

3. 字符型Character

char:用于存储单个字符,在 C 语言中字符是以 ASCII 码值的形式存储的,占用 1 个字节。例如字符 'A' 实际存储的是其对应的 ASCII 码值 65(十进制)。

1.2 构造数据类型

数组(Array):是一组相同类型的数据元素的有序集合。

结构体(Structure):可以将不同类型的数据成员组合在一起,形成一个新的自定义数据类型。

共用体(Union):也叫联合体,它允许不同类型的数据成员共享同一段内存空间,在不同时刻可以存放不同类型的数据,但同一时刻只能存放其中一种类型的数据。

枚举(Enumeration):用于定义一组具有离散值的常量标识符。

1.3 指针类型

指针是一种特殊的数据类型,它存储的是另一个变量的内存地址。

例如 int *p;

表示定义了一个指向整型数据的指针变量 p,通过指针可以间接访问和操作其所指向的变量

在 C 语言中指针的使用非常灵活且广泛,比如在函数传参改变实参的值、动态内存分配等方面都有重要应用。

1.4 空类型(void)

void:常用于表示函数无返回值或者无参数等情况,比如定义一个无返回值的函数可以写成

void functionName();

也用于指针指向不明类型数据的情况等,

像 void *ptr;

表示定义了一个可以指向任意类型数据的指针,但在实际使用时需要进行类型转换才能正确操作其所指向的数据。

2 变量

2.1 使用

变量就像是一个 “容器”,用来存放特定类型的数据。

变量需要先定义再赋值,然后就可以正常使用啦

定义变量格式:数据类型 变量名;

//变量 声明

int num1;

//变量 赋值

num1=101;

//变量 声明和赋值

int num2=110;

//变量使用

printf("num1+num2=%d\n",num1+num2);

2.2 变量的命名规则

变量名只能由字母(大小写均可)、数字和下划线组成。

变量名必须以字母或下划线开头,不能以数字开头。

变量名不能是 C 语言中的关键字(如 int、float、if、for 等这些有特定语法功能的保留字)。

变量名最好具有一定的含义,方便阅读和理解代码,例如用 studentName 表示学生的姓名变量等。

2.3 变量的作用域

局部变量:

在函数内部定义的变量称为局部变量,其作用域仅限于定义它的函数内部

全局变量:

在所有函数外部定义的变量就是全局变量,它的作用域从定义的位置开始,到整个源文件结束

//全局 变量

int score=88;

int main(void)

{

//局部变量

float money=8.8f;

printf("money=%f\n",money);

printf("sex=%d\n",score);

return 0;

}

3.常量

3.1 常量

常量是指在程序运行过程中其值不能被改变的量

3.2 字面常量

整型字面常量:

就是直接写出的整数数值,例如 10、-25、0 等。

在 C 语言中,根据数值大小和表示形式,整型字面常量还可细分为

十进制整数(如 123)

八进制整数(以 0 开头,像 012 表示八进制的 10)

十六进制整数(以 0x 或 0X 开头,例如 0x1A 表示十六进制的 26)。

浮点型字面常量:

用来表示实数,有两种表示形式。

一种是十进制形式,例如 3.14、-0.5 等;

另一种是科学计数法形式,比如 1.23e2 表示 123.0(e 后面的数字表示 10 的幂次)

字符型字面常量:

用单引号括起来的单个字符,例如 'A'、'3'、' '(空格字符)等。

在 C 语言中,字符型字面常量实际上存储的是该字符对应的 ASCII 码值(占 1 个字节),例如 'A' 的 ASCII 码值是 65。

字符串字面常量:

用双引号括起来的字符序列,像 "Hello"、"C Language" 等。

字符串在内存中是以字符数组的形式存储的,并且会自动在末尾添加一个 '\0' 作为字符串结束标志,所以字符串 "abc" 实际上占用 4 个字节。

3.3 符号常量

通过 #define 预处理指令来定义,语法格式为:

define 符号常量名 常量值

在程序编译之前,预处理器会把代码中所有出现的符号常量名替换成对应的常量值。

使用符号常量可以增强程序的可读性和可维护性,当需要修改常量值时,只需要在 #define 语句处修改即可,而不用在程序中到处查找修改。

3.4 枚举常量

在定义枚举类型时,枚举成员本身就是常量

3.5 常量表达式

是由常量和运算符组成的表达式,其结果在编译时就能确定,例如 2 + 3 * 4 这个表达式的值为 14.

在编译阶段就可以计算出来,在程序运行时它的值不会再发生变化,也属于一种特殊的常量形式。

好啦,本篇就到这里啦,希望大家有所收获!坚持,就一定出奇迹!

相关推荐

想让机器人听你的话?先把它叫醒再说
365365bet体育在

想让机器人听你的话?先把它叫醒再说

📅 07-24 👁️ 9493
心疼!钟铉遗书公开:问我为什么死?因为累了
必发365手机在线登录

心疼!钟铉遗书公开:问我为什么死?因为累了

📅 09-14 👁️ 3583
想自杀的人,会告诉别人吗?
365365bet体育在

想自杀的人,会告诉别人吗?

📅 08-16 👁️ 4746