C语言初阶之常量和变量

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

6832ef8121ac49fa9d98638a1a4d232d.png


什么是常量和变量


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

说明:

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

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


常量


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

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

1.字面常量

2.const 修饰的常变量

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

4.枚举常量


示例


#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;
}


定义变量的方法


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


变量的命名


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

2.不能以数字开头。

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

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

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


变量的分类


分为局部变量和全局变量


示例


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


局部变量a变量的定义和全局变量a变量的定义并不冲突

当局部变量和全局变量同名的时候,局部变量优先使用

所以这里输出应该是2024。


变量的使用


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


#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对修改后的两个变量相加的值进行接收。


变量的作用域和生命周期


作用域


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


1.局部变量的作用域是变量所在的局部范围。

2.全局变量的作用域是整个工程。


生命周期


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


1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2.全局变量的生命周期是:整个程序的生命周期。


结语


之前一直忙数据结构板块的更新,没写C初阶的博客,近期应该会更新大量C语言的博客,希望大家多支持!!!


有兴趣的小伙伴可以关注作者,如果觉得内容不错,请给个一键三连吧,蟹蟹你哟!!!

制作不易,如有不正之处敬请指出

感谢大家的来访,UU们的观看是我坚持下去的动力

在时间的催化剂下,让我们彼此都成为更优秀的人吧!!!

28b5f11874724b9fa2b422517e262abe.png

相关文章
|
15天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
44 12
|
24天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
102 11
|
24天前
|
安全 程序员 C语言
【C语言】指针的爱恨纠葛:常量指针vs指向常量的指针
在C语言中,“常量指针”和“指向常量的指针”是两个重要的指针概念。它们在控制指针的行为和数据的可修改性方面发挥着关键作用。理解这两个概念有助于编写更安全、有效的代码。本文将深入探讨这两个概念,包括定义、语法、实际应用、复杂示例、最佳实践以及常见问题。
42 7
|
24天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
31 5
|
24天前
|
C语言
【C语言】<常量> 之群英荟萃
在C语言中,常量(Constants)是指在程序运行过程中其值不能被修改的固定值。常量包括数值常量(整型和浮点型)、字符常量、字符串常量、使用const关键字定义的常量变量以及枚举常量。
27 4
|
24天前
|
编译器 C语言
【C语言】常量的 “前缀和后缀” 大通关!
在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。
33 1
|
2月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
57 1
|
2月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
2月前
|
存储 C语言
C语言:设置地址为 0x67a9 的整型变量的值为 0xaa66
在C语言中,可以通过指针操作来实现对特定地址的访问和赋值。要将地址为 0x67a9 的整型变量值设为 0xaa66,可以先定义一个指向该地址的指针,并通过该指针对该内存位置进行赋值操作。需要注意的是,直接操作内存地址具有一定风险,必须确保地址合法且可写。代码示例应考虑字节序及内存对齐问题。
|
2月前
|
C语言 C++
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)