谈谈C语言中的变量

C/C++
331
0
0
2022-11-14

变量

变量的单词是variable,它的形容词的意思是可变的,易变的。在C语言中,每个变量都有特定的类型,而类型又决定了变量存储的大小和布局,类型范围内的值都可以存储在内存中,运算符可应用于变量上。C 语言还允许定义各种其他类型的变量,例如:枚举、指针、数组、结构、共用体等。

变量的命名规则

C语言中,变量的命名可以由字母数字下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 语言对字母的大小写是敏感的

例子:

int i,j,k;
int _Max;
int Happy2021;

C 中的变量定义

在C语言中,变量定义就是告诉编译器我要创建变量的存储,及怎么创建变量的存储。变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表。

变量定义示范:类型 命名类型

int i,j,k;
char ch;
float f;
double d;

C语言中,变量定义的同时还可以指定一个初始值,实例如下:

extern int d = 1, f = 2;
int d = 3, f = 4;
byte b = 5;
char x = 'A';

C语言中,不带初始化的定义往往都会被隐式初始化为 NULL(所有字节的值都是 0),其它情况的变量的初始值都是未定义的。

C 中的变量的声明

变量的声明保证变量在编译器以指定的类型和名称存在,这样编译器在不知道变量完整细节的情况下也能继续进一步的编译。变量的声明只在编译时有它的意义,在程序连接时编译器需要实际的变量声明。

变量的声明有以下两种情况:

1、需要建立存储空间的。如:int a 在声明的时候就已经建立了存储空间。

2、不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。如:extern int a 其中变量 a 可以在别的文件中定义的。

除非有extern关键字,否则其它的都是变量定义。

extern int i; //声明,不是定义
int i; //声明,也是定义

变量声明实例

#include <stdio.h>
// 函数外定义变量 x 和 y
int x;
int y;
int main()
{
    int sum;
    // 调用函数 add
    sum = add();
    printf("sum = %d",sum);
    return 0;
}
int add()
{
    // 函数内声明变量 x 和 y 为外部变量 
    extern int x;
    extern int y;
    // 给外部变量(全局变量)x 和 y 赋值
    x = 1;
    y = 2;
    return x+y;
}

运行编译以上代码,输出以下结果:

sum = 3

C语言中的左值和右值

C语言中有两种类型的表达式:

1.左值(lvalue):向内存位置的表达式被称为左值表达式。左值可以出现在赋值号的左边或赋值号的右边。

2.右值(rvalue):存储在内存中某些地址的数值称为右值表达式。右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。

下面我给一个正确的语句:

int a = 10;

但是下面这个语句就是个错误的语句:

10 = 20;