在本 C 语言教程中,您将学习有关变量的所有知识,这是编程语言的基本单位。我们将通过示例详细讨论 C 语言中什么是变量,如何命名、声明和初始化变量。除此之外,您还将了解 C 语言中的左值和右值以及 C 语言中变量的类型。
变量是计算机内存中的一个保留空间,数据可以存储在这里,您可以为每个内存位置分配一个特定的名称。在 RAM 中,每个字节的数据都按顺序存储,并具有明确的地址。其值从 '0' 开始,并随着内存分配序列的进行而增加。
尽管 'C' 语言允许您根据自己的意愿和方便使用变量名,但您必须遵守某些规则。
| 有效的变量名 | 无效的变量名 |
|---|---|
| _age | 17age |
| num,NUM | int, print |
| Stud1, Stud_2 | Stud#,Stud 1,Stud@2 |
在 C 语言编程中,程序中将要使用的所有变量都必须先声明。这有两个原因:
变量声明语法涉及两个重要部分,如下所示:一个是数据类型,另一个是变量名。变量声明必须始终以分号结尾,否则编译器将引发终止错误。此外,如果多个变量具有相同的数据类型,C 语言允许在一行中声明多个变量。
datatype variable_name;
基本上,有三种非常常用的数据类型声明。可以通过这个例子来说明:
int num, no;
char a, b;
float f1,f2;
这里,'int' 表示整数,'char' 表示单个字符,'float' 表示小数。int、char、float 是数据类型,num、no、a、b、f1、f2 是标识符(变量名)。当一个变量用特定的数据类型声明后,它只能接受该特定数据类型的值。在这里,num 只能接受整数值,如果我们试图将任何其他值(如字符)存储到 num 中,它将引发错误。
声明完成后,您可以根据需要自由使用分配的空间(即变量)。这个已声明的变量最初包含垃圾值,即未定义的值。如果您希望初始分配一些值,可以使用赋值运算符“=”来完成。变量初始化可以在声明时进行。语法如下。
datatype variable_name = value;
下面是一些变量初始化的示例:
int num = 10, no =20;
char a = ‘A’, b = ‘B’;
float f1 = 2.5 ,f2 = 5.2;
左值 (Lvalues) 实际上指的是变量的地址位置。它通常出现在运算符(=, >)的左侧。因此,您可以说一个标识符是一个可修改的左值,它可以变化。
#include <stdio.h>
main()
{
int num1,num2,total;
num1=4;
num2=5;
total=num1+num2;
printf("Total number is %d",total);
}
在这个程序中,num1、num2、total 分别在第 5、6 和 7 行充当左值。
右值 (Rvalues) 通常是被赋的值,即存储在已分配地址中的数据。它可以是任何字符或数字,通常出现在运算符的右侧。在上述程序中,第 5 行和第 6 行的 4、5 是右值。
所以,最后我们可以说,左值表示对象的身份,右值表示它的值。
C 语言作为一种静态语言,包含 5 种类型的变量。它们如下所列:
局部变量是在函数或代码块内部定义的变量。该变量的作用域仅限于该函数或代码块。因此,我们可以说这种类型的变量只有局部作用域。
void funct()
{
int num = 5; // Local Variable
}
全局变量是在函数或代码块外部定义的变量。全局变量的作用域在整个程序中都有效,可以被任何函数或代码块使用。全局变量的值可以在函数内部被修改。
int g = 10; // Global Variable
void funct()
{
int num = 5; // Local Variable
}
如果一个变量前面带有关键字 static,则称其为静态变量。静态变量在函数调用期间很有用,因为声明为静态的变量会在每次函数调用时保留其值。下面的代码片段将说明静态变量和局部变量的工作方式。
#include <stdio.h>
int main()
{
void funct()
{
static int a =10; // Static Variable
int num = 5; // Local Variable
num = num + 1;
a = a + 1;
printf("a = %d\t and Num =%d\n",a,num);
}
funct();
funct();
funct();
}
输出
a = 11 and Num =6 a = 12 and Num =6 a = 13 and Num =6
默认情况下,在 C 语言中,所有局部变量都是自动变量,因为它们在进入代码块时分配内存,在退出代码块时释放内存。使用关键字“auto”,我们可以显式地将一个变量声明为自动变量。
void funct()
{
int num1 = 5; // implicitly automatic Variable
auto int num2 = 10; // Explicitly automatic variable
}
在 C 语言中,一个前面带有关键字 'extern' 的变量被称为外部变量,其作用域在源文件之间有效。更具体地说,变量的作用域不局限于单个文件,而是对外部文件也可用。外部变量也是全局变量。
extern int num1 = 10; //external variable
#include <file.h>
#include <stdio.h>
main()
{
int num2,total;
num2=5;
total=num1+num2;
printf("Total is %d",total);
}
输出
Total is 15