C语言初阶的常量和变量

简介: 在C程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,直接常量是可以不经说明而直接引用的,而符号常量和变量则必须先定义后使用。

在C程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。

1、什么是常量和变量

在C程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,直接常量是可以不经说明而直接引用的,而符号常量和变量则必须先定义后使用。

说明:

1、在程序执行过程中,其值不发生改变的量称为常量。

2、其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。

2、常量

C语言中的常量和变量的定义的形式有所差异。

C语言中的常量分为以下以下几种:

1.字面常量

2.const 修饰的常变量

3.#define 定义的标识符常量

4.枚举常量

2.1 示例

#include <stdio.h>
enum student
{
 NUM,
 NAME,
 SEX
};
//括号中的NUM,NAME,SEX是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量,是不能直接修改的!
    pai = 4.14;//这里就是个错误的赋值
    //#define的标识符常量 演示
 #define MAX 10000
    printf("max = %d\n", MAX);//可以理解为给10000换了个名字叫MAX
    //枚举常量演示
    printf("%d\n", NUM);//0
    printf("%d\n", NAME);//1
    printf("%d\n", SEX);//2
    //注:枚举常量的默认是从0开始,依次向下递增1的
    return 0;
}

3、定义变量的方法

int age = 22;
float weight = 57.5f;
char ch = 'a';

3.1 变量的命名

1.只能由字母(包括大写和小写)、数字和下划线( _ )组成。

2.不能以数字开头。

3.长度不能超过63个字符。

4.变量名中区分大小写的。

5.变量名不能使用关键字。

4、变量的分类

分为局部变量全局变量

#include <stdio.h>
int a = 2023;//全局变量
int main()
{
    int a = 2024;//局部变量
    int b = 2022;//局部变量
    printf("a = %d\n", a);
    return 0;
}

局部变量a变量的定义和全局变量a变量的定义并不冲突当局部变量和全局变量同名的时候,局部变量优先使用所以这里输出应该是2024。

5、变量的使用

比如下面这段代码就很好的演示了变量的使用:

#include <stdio.h>
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个数进行相加:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

输入新的操作数对变量num1和变量num2进行修改,变量sum对修改后的两个变量相加的值进行接收。

6、变量的作用域和生命周期

6.1 作用域

作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。

  • 局部变量的作用域是变量所在的局部范围。
  • 全局变量的作用域是整个工程。

6.2 生命周期

生命周期指的是变量的创建到变量的销毁之间的一个时间段。

  • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  • 全局变量的生命周期是:整个程序的生命周期。
相关文章
|
1天前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
6 0
|
1天前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(下)
C语言初阶⑦(指针初阶)知识点+笔试题
5 0
|
1天前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(上)
C语言初阶⑦(指针初阶)知识点+笔试题
8 0
|
1天前
|
存储 Linux C语言
C语言初阶⑥(操作符详解)编程作业(算数转换)(下)
C语言初阶⑥(操作符详解)编程作业(算数转换)
5 1
|
1天前
|
存储 C语言 索引
C语言初阶⑥(操作符详解)编程作业(算数转换)(上)
C语言初阶⑥(操作符详解)编程作业(算数转换)
10 0
|
1天前
|
C语言
C语言初阶⑤(数组)扫雷游戏(分步实现+效果图)
C语言初阶⑤(数组)扫雷游戏(分步实现+效果图)
7 1
|
1天前
|
存储 C语言
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)(下)
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)
8 1
|
1天前
|
存储 C语言
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)(上)
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)
9 0
|
1天前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
8 1
|
1天前
|
C语言 数据安全/隐私保护
C语言初阶①(分支语句和循环语句)知识点(下)
C语言初阶①(分支语句和循环语句)知识点
6 1