C语言中数据的载体【变量和常量】

        在C语言中,变量和常量是编程过程中不可或缺的载体。它们承载着程序中的数据和信息,为程序的运行提供了基础。变量可以存储不同类型的数据,并且可以在程序执行过程中被修改,而常量则是不可更改的固定数值。了解和掌握这两个概念,对于编写高效且可靠的程序至关重要。在本篇博客中,我们将深入探讨C语言中的变量和常量,帮助读者更好地理解它们在程序设计中的作用和用法。

一、变量

1、变量的定义和赋值

在使用一个变量存放数据时应该现对其进行定义,然后再对其进行赋值存放数据。定义赋值的具体格式如下:

只定义                                        :数据类型        变量名称 ;

定义后赋值,对变量进行初始化数据类型         名称 = 数值;

//只定义不赋值
int age;
//赋值后定义
int age = 6; 
short tall = 120;
char Sign = A;

 前一行意思是定义了age这个变量,其类型是整形,其内部存放的数据时不确定的。在后几句,是定义了整形age,短整型tall,和字符型Sign,他们之中分别存放6,120和A这三个数据,由此可见,存放数据要使用其对应的数据类型。char是字符型,所以我们用它来存放A,但是如果我们把数字存进字符型变量去呢?感兴趣的同学可以试一试,然后将这个数据输出出来看看结果是什么?

2、变量的命名

变量的命名是有一定规则的不是随意命名的,而且规范合理的命名可以大大提高代码的可读性,对后期复习以及工程中的过程协作、后期维护非常有帮助。尽量避免使用一些随意的名称,如a,j,i等。具体规则如下:

  • 只能由字母(大写小写都可以)、数字、下划线组成
  • 不能以数字开头
  • 长度不能超过63个字符
  • 变量名中区分大小写
  • 变量名不能使用关键字

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

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

 那么怎样判断变量的生命周期呢?首先全局变量一般是定义在main函数之前的,局部变量一般定义在函数内部,也就是两个花括号内部,如果有嵌套的情况,也就是一对大括号里面有另外一对大括号,此时如果一个变量在其中定义,那么其作用域便是这个嵌套内部的大括号。外面是没法使用它的。以下是示例代码:

#include <stdio.h>

int globalVar = 10; // 全局变量

void testFunction() {
    int localVar = 20; // 局部变量
    printf("Local variable: %d\n", localVar);
}

int main() {
    printf("Global variable: %d\n", globalVar);
    testFunction();
    
    // 在这里尝试访问局部变量会导致编译错误
    // printf("Trying to access local variable: %d\n", localVar);

    return 0;
}
变量的生命周期
  • 局部变量的生命周期是进入生命周期开始到出作用域结束
  • 全局变量的生命周期是整个程序的生命周期

 了解了作用域的概念后生命周期应该很好理解了,

二、常量

常量之所以和变量区分开,其中很重要的原因就是常量是不可更改的,在C语言中,可以使用const关键字来定义常量,一旦定义后,常量的数值就无法被更改。以下是一个示例:

#include <stdio.h>

int main() {
    const int MAX_VALUE = 100;
    
    // 尝试更改常量的值会导致编译错误,如下面这段代码
    // MAX_VALUE = 200;  // 无法更改常量的值
    
    printf("MAX_VALUE: %d\n", MAX_VALUE);
    
    return 0;
}

(一)字面常量

        1.整形字面常亮 :100

        2.字符字面值     :‘w‘

        3.const修饰的·常变量:const int num = 100;(不可修改)        

        4.#define定义的标识符常亮

#define MAX_Value 100
//利用宏定义将MAX_Value定义为100,且无法被修改
//在这里同学们可以简单的理解为替换,不是很重要
//宏定义在之后会进行单独讲解

        5.字符串常量     :“abcdefg”

        6.浮点型常量     :3.14

        注(const:)

        const是常属性的意思,在C语言中,const是一个关键字,用于声明一个常量。通过将变量声明为const,可以告诉编译器该变量的值在程序执行过程中不会被改变。这样做有以下几个作用:

  1. 防止意外修改:通过将变量声明为const,可以避免在程序中意外修改该变量的值,从而提高代码的可读性和可维护性。

  2. 优化编译器:编译器可以利用const关键字来进行优化,例如将const变量存储在只读内存中,以提高程序的性能。

  3. 符号表检查:const变量在符号表中会被标记为只读,这样在编译过程中可以检查是否存在对该变量的非法修改。

注(变长数组:)

C99中引入了变长数组的概念,变长数组的大小是可以更改的:

在C语言中,变长数组(Variable Length Array,VLA)是指数组的长度可以在运行时动态确定的数组。传统的数组在定义时必须指定固定的长度,而变长数组可以根据程序运行时的需要来确定数组的长度。

变长数组的长度可以使用变量来指定,这使得在某些情况下更加灵活和方便。变长数组的声明方式与传统数组类似,只是在定义数组长度时可以使用变量,而不是常量。

示例:


int n;
scanf("%d", &n);
int array[n]; // 定义一个长度为n的变长数组

需要注意的是,变长数组是C99标准引入的特性,因此在一些较老的编译器中可能不支持。此外,由于变长数组的长度是在运行时确定的,因此在使用变长数组时需要注意内存分配和释放的问题,以避免出现内存溢出或内存泄漏的情况。

(二)枚举常量

枚举enum (enumeration)

C语言中,枚举(enum)是一种用户自定义的数据类型,用于定义一组有限的命名整数常量。枚举常量用于表示一组相关的符号常量,可以提高代码的可读性和可维护性。

枚举类型的定义格式如:

enum 枚举类型名 {
    枚举常量1,
    枚举常量2,
    ...
};

在定义枚举类型后,可以使用枚举常量来声明变量,例如:

enum Weekday {
    MON, TUE, WED, THU, FRI, SAT, SUN
};

enum Weekday today = WED;

枚举常量默认从0开始递增,可以手动指定初始值,例如:


enum Month {
    JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
};

枚举常量在程序中可以直接使用,可以提高代码的可读性,避免使用魔术数字。枚举常量也可以和`switch`语句一起使用,方便进行多个常量的比较。

总之,枚举常量是一种方便的方式来定义一组相关的符号常量,提高代码的可读性和可维护性。

在程序设计中,变量和常量是不可或缺的重要元素。通过对它们的深入理解和掌握,我们可以更好地编写高效且可靠的程序。变量的灵活性和常量的稳定性相辅相成,为程序的运行提供了坚实的基础。希望本篇博客能够帮助读者更好地理解C语言中变量和常量的作用,为他们在程序设计中的实践提供指导和帮助。愿大家在编程的道路上越走越远,不断提升自己的技术水平和编程能力。感谢大家的阅读!

  • 38
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
本项目是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。该系统主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者,包含项目源码、数据库脚本、项目说明等,有论文参考,可以直接作为毕设使用。 后台框架采用SpringBoot,数据库使用MySQL,开发环境为JDK、IDEA、Tomcat。项目经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。 该系统的功能主要包括商品管理、订单管理、用户管理等模块。在商品管理模块,可以添加、修改、删除商品信息;在订单管理模块,可以查看订单详情、处理订单状态;在用户管理模块,可以注册、登录、修改个人信息等。此外,系统还提供了数据统计功能,可以对销售数据进行统计和分析。 技术实现方面,前端采用Vue框架进行开发,后端使用SpringBoot框架搭建服务端应用。数据库采用MySQL进行数据存储和管理。整个系统通过前后端分离的方式实现,提高了系统的可维护性和可扩展性。同时,系统还采用了一些流行的技术和工具,如MyBatis、JPA等进行数据访问和操作,以及Maven进行项目管理和构建。 总之,本系统是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。系统经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒雒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值