首页 > 编程笔记 > C语言笔记 阅读:113

变量是什么,C语言变量的声明和使用(非常详细)

在 C 语言中,变量是用于存储和处理数据的。

变量可以被看作带有标签的盒子,用于存储各种数据类型的值,如整数、浮点数等。当程序运行时,它可以在变量中存储不同的值,并且可以对这些值进行操作、计算和传递。

变量是 C 语言中一个基本且重要的概念,它提供了一种方便的方式来存储和处理程序中的数据。

C语言变量的声明

声明变量可以套用如下的公式:

数据类型 + 标识符 + 分号

标识符是我们自己命名的一个标识,用于表示一个变量、函数或其他实体的名称。

例如,下面声明了几个变量:
short s;
int n;
long l;
float f;
double d;
上述代码中的 s、n、l、f 和 d 是我们自己命名的标识符,用于表示变量。

为了让编译器正确识别标识符,必须在使用前对其进行声明或定义。因此,要使标识符被编译器看作一个变量,必须在使用前将其声明为一个变量。

以下是一些示例:
【实例 1】变量 a 在使用前被正确地声明。
//  正确示例
#include <stdio.h>
int main()
{
    int a;
    printf("%d\n", a);  //  正确,变量a在使用前被声明了
    return 0;
}

【实例 2】变量 a 在未声明的情况下被错误地使用。
//  错误示例
#include <stdio.h>
int main()
{
    printf("%d\n", a);  //  错误,变量a未被声明
    return 0;
}

【实例 3】变量 a 在声明前被错误地使用。
//  错误示例
#include <stdio.h>
int main()
{
    printf("%d\n", a);  //  错误,变量在声明前被使用
    int a;
    return 0;
}

变量命名规则

在 C 语言中,声明变量的公式为“数据类型 + 标识符 + 分号”。变量名由于是标识符的一种,因此必须符合标识符的命名规则。

重新复习一遍标识符的命名规则:标识符由大小写字母、数字和下画线组成,不能以数字开头,并且必须与现有的关键字不同。

我们可以通过以下五个例子来更好地理解标识符的命名规则。
short apple;     // 正确,使用了一个合法的标识符
int 88fruit;     // 错误,不能以数字开头
long _pencil;    // 正确,可以以下画线或字母开头
float love_you;  // 正确,使用了一个下画线的合法标识符
double int;      // 错误,不能使用现有的关键字作为标识符

变量的初始化和赋值

思考一下,下面实例输出的数值是多少呢?
#include <stdio.h>
int main()
{
    int a;
    printf("%d\n", a);
    return 0;
}
运行之后我们发现,它居然报错了,如下图所示:


图 1 使用了未初始化的局部变量

这是因为变量 a 在使用之前没有被赋予任何确定的值。此时,a 的值是一个随机值,这样的随机值会导致程序产生错误的结果。Visual Studio 在默认设置下,使用这种未初始化的变量是无法通过编译的。

为了解决这个问题,我们需要为变量 a 赋予一个确定的值。常见的两种方法如下:

1) 变量声明后立即初始化
#include <stdio.h>
int main()
{
    int a = 100;        //  变量a一旦被声明,就会被赋值100
    printf("%d\n", a);
    return 0;
}
变量 a 一旦被声明,就会被赋值 100。

2) 变量先声明,后赋值
#include <stdio.h>
int main()
{
    int a;              // 变量a被声明后,它是一个随机值
    a = 100;            // 这里我们使用赋值运算符,将100赋予变量a
    printf("%d\n", a);
    return 0;
}
变量 a 被声明后未进行初始化,后续使用赋值运算符为变量赋值。

无论采用哪种方法,都能为变量 a 赋予一个确定的值,避免程序出现错误的结果。

初始化和赋值的区别

在 C 语言中,初始化和赋值都是用来给变量赋值的操作,但它们在语法和含义上有一些区别。

赋值是为已经声明过的变量赋予一个数值,写法如下。
a = 100;
初始化是在变量声明时进行的赋值操作,写法如下。
int a = 100;
可以通过赋值运算符左边的位置来区分赋值和初始化:
总结一下,变量可以多次被赋值,但是不能多次被声明(初始化)。

多次初始化的写法相当于将变量重复声明,在第二次声明变量时,编译器会报告一个编译错误。

下面的程序是正确的示例,它只声明了一次变量 a,并在后续的代码中为其赋值两次。
//  正确,将输出100和200
#include <stdio.h>
int main()
{
    int a;
    a = 100;
    printf("%d\n", a);
    a = 200;
    printf("%d\n", a);
    return 0;
}

下面是错误的示例,它多次声明了变量 a。
//  错误,变量a被重复声明
#include <stdio.h>
int main()
{
    int a;
    a = 100;
    printf("%d\n", a);
    int a = 200;
    printf("%d\n", a);
    return 0;
}

相关文章