C 变量、数据类型、常量

⚡ 智能摘要

变量、数据类型和常量构成了每个 C 程序的基础,其中变量存储可变值,数据类型定义数据的大小和范围,常量保存永不改变的固定值。

  • 🔤 变量: 变量是一个带名称的标识符,其值可以改变,可以用字母、数字或下划线来声明。
  • 🧮 数据类型: C 类型分为基本类型、派生类型和用户自定义类型,包括 int、char、float、double 和 void,每种类型都有固定的大小和范围。
  • 🔒 常数: 常量保存固定值,包括整数常量、字符常量、字符串常量和实数常量,这些常量永远不会改变。
  • ⚙️ 宣言: const 关键字和 #define 指令都可以创建常量,一个用于预留内存,另一个用于替换文本。
  • 🤖 人工智能辅助: GitHub Copilot 可以建议正确的数据类型,标记命名错误,并加快 C 声明速度。

C 变量、数据类型、常量

什么是变量?

变量是用于存储某个值的标识符。常量在执行时永远不会改变。变量可以在程序执行期间发生变化并更新存储在其中的值。

一个变量可以在程序中的多个位置使用。变量名必须有意义。它应该代表变量的用途。

Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person

在程序中使用变量之前,必须先声明变量。变量名由字符、数字和下划线组成。

以下是创建变量时必须遵循的规则:

  • 变量名应该只由字符、数字和下划线组成。
  • 变量名不应该以数字开头。
  • 变量名不应包含空格。
  • 变量名不应该由关键字组成。
  • “C” 是一种区分大小写的语言,这意味着名为“age”和“AGE”的变量是不同的。

以下是“C”程序中有效变量名的示例:

height or HEIGHT
_height
_height1
My_name

以下是“C”程序中无效变量名的示例:

1height
Hei$ght
My name

例如,我们声明一个整型变量 my_variable 并为其赋值 48:

int my_variable;
my_variable = 48;

顺便说一下,我们可以在一条语句中声明和初始化(分配初始值)一个变量:

int my_variable = 48;

数据类型

“C” 提供了各种数据类型,使程序员可以轻松地根据应用程序的要求选择合适的数据类型。以下是三种数据类型:

  • 原始数据类型
  • 派生数据类型
  • 用户定义的数据类型

有五种主要的基本数据类型,

  • int 表示整数数据
  • char 表示字符数据
  • float 表示浮点数
  • double 表示双精度浮点数
  • 无效

数组、函数、指针和结构体都是派生数据类型。C 语言提供了上述基本数据类型的扩展版本。每种数据类型的大小和范围都各不相同。下表列出了每种数据类型的大小和范围。

数据类型 大小(以字节为单位) 范围
字符或有符号字符 1 128到127
无符号字符 1 0到255
int 或有符号 int 2 32768到32767
无符号整数 2 0到65535
短整型或无符号短整型 2 0到255
有符号短整型 2 128到127
长整型或有符号长整型 4 2147483648到2147483647
无符号长整型 4 0到4294967295
浮动 4 3.4E-38 至 3.4E+38
翻番 8 1.7E-308 至 1.7E+308
长双 10 3.4E-4932 至 1.1E+4932

注意:在 C 语言中,没有布尔数据类型。

整数数据类型

整数就是一个整数。整数数据类型的范围因机器而异。整数数据类型的标准范围是 -32768 到 32767。

整数通常为 2 个字节,这意味着它在内存中总共占用 16 位。单个整数值占用 2 个字节的内存。整数数据类型进一步分为其他数据类型,例如短整型、整型和长整型。

尽管属于整数数据类型系列,但每种数据类型的范围都不同。整数系列的每个数据类型的大小可能不会改变。

短整型 (short int) 主要用于存储较小的数字,整型 (int) 用于存储平均大小的整数值,长整型 (long int) 用于存储较大的整数值。

每当我们想要使用整数数据类型时,都必须在标识符前加上 int,例如:

int age;

这里,age 是一个整数数据类型的变量,可用于存储整数值。

浮点数据类型

与整数一样,在“C”程序中我们也可以使用浮点数据类型。“float”关键字用于表示浮点数据类型。它可以保存浮点值,这意味着数字有分数和小数部分。浮点值是包含小数点的实数。整数数据类型不存储小数部分,因此我们可以使用浮点数来存储值的小数部分。

通常,浮点数最多可以容纳 6 个精度值。如果浮点数不够,那么我们可以使用其他可以容纳大浮点值的数据类型。数据类型 double 和 long double 分别用于存储精度高达 14 位和 80 位的实数。

使用浮点数时,必须在标识符前放置关键字 float/double/long double。有效示例为:

float division;
double BankBalance;

字符数据类型

字符数据类型用于存储用单引号括起来的单个字符值。

字符数据类型最多占用 1 字节的内存空间。

例,

Char letter;

Void 数据类型

void 数据类型不包含或返回任何值。它主要用于在“C”中定义函数。

例,

void displayData()

变量的类型声明

int main() {
int x, y;
float salary = 13.48;
char letter = 'K';
x = 25;
y = 34;
int z = x+y;
printf("%d \n", z);
printf("%f \n", salary);
printf("%c \n", letter);
return 0;}

输出:

59
13.480000
K

我们可以用逗号分隔,在同一行中声明多个相同数据类型的变量。另外,请注意 printf 输出函数中格式说明符的使用:float (%f)、char (%c) 和 int (%d)。

常量

常量是程序执行过程中不会改变的固定值。以下是各种类型的常量:

整数常量

整数常量只不过是一个由数字或数值组成的值。这些值在程序执行期间永远不会改变。整数常量可以是八进制、十进制和十六进制。

十进制常数包含 0-9 的数字,例如,

Example, 111, 1234

以上是有效的十进制常数。

八进制常数包含0-7的数字,并且该类型的常数前面始终带有0。

Example, 012, 065

以上是有效的八进制常数。

十六进制常数包含 0-9 之间的数字以及 AF 之间的字符。十六进制常数始终以 0X 开头。

Example, 0X2, 0Xbcd

以上是有效的十六进制常量。

八进制和十六进制整数常数在使用“C”编程时很少使用。

字符常量

字符常量仅包含一个用单引号 (') 括起来的字符。我们也可以通过提供字符的 ASCII 值来表示它。

Example, 'A', '9'

以上是有效字符常量的示例。

字符串常量

字符串常量包含用双引号(“”)括起来的一系列字符。

Example, "Hello", "Programming"

这些是有效字符串常量的示例。

实常数

就像始终包含整数值的整数常量一样。 “C”还提供包含小数点或分数值的实常数。 实常数也称为浮点常数。 实常数包含一个小数点和一个小数值。

Example, 202.15, 300.00

这些是 ' 中的有效实常数C“。

实数常数也可以写成,

Mantissa e Exponent

例如,要声明一个不会改变的值(如经典的圆周常数 PI),有两种方法可以声明此常数

在变量声明中使用 const 关键字会预留存储空间。

#include <stdio.h>
int main() {
const double PI = 3.14;
printf("%f", PI);
//PI++; // This will generate an error as constants cannot be changed
return 0;}

通过使用 #define 预处理器指令(该指令不使用内存进行存储),并且在该语句末尾不添加分号字符。

#include <stdio.h>
#define PI 3.14
int main() {
printf("%f", PI);
return 0;}

常见问题

变量是内存中一个已命名的位置,其值在程序执行期间可以改变。常量则保存着一个固定的值,一旦定义,该值就永远不会改变。

`const` 关键字用于创建一个类型化的、内存支持的常量,编译器会对其进行检查。`#define` 是一个预处理器宏,它会替换文本,并且不占用任何存储空间。

局部变量存在于函数内部,并且仅在函数运行时存在。全局变量则可以通过整个程序访问。 存储类.

有符号类型可以存储正值和负值。无符号类型只存储非负值,在字节数相同的情况下,正值范围翻倍。

经典的C语言没有布尔类型;程序员使用整数0和1。自C99以来,通过 _Bool 类型添加 bool、true 和 false。

格式说明符告诉 printf 和 scanf 如何解释数据。%d 处理整数,%f 处理浮点数,%c 处理单个字符。

是的。AI 代码助手会建议数据类型,警告超出范围的值,并标记与关键字冲突的名称。但务必检查输出结果。

GitHub 副驾驶 它会根据注释或附近代码自动补全变量和常量声明。它会建议名称和数据类型,并生成 const 或 #define 语句草稿供您审核。

总结一下这篇文章: