文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

适合初学者的C语言常量类型的讲解

2024-04-02 19:55

关注

生活中有一些是可变的量(比如你的年龄,身高,体重,对象)

还有一些不变的量(比如圆周率,性别,身份证号码)[哎,这里你说性别可变啊,我们只能笑一下,哈哈]

常量的定义

常量就是一个不变的量(比如圆周率,性别,身份证号码)

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

常量的分类

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

我们来演示一下

字面常量

字面常量,就是字面上就可以看出来的常量

int main()
{
    //字面常量演示
    3.14;//小数
    1000;//整数
    'w';//字符
    "abc";字符串
  
   return 0;
}

const修饰的常变量

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>//使用printf记得加这条代码

int main()
{
    //const修饰的常变量演示
   int a=100;//我们等一会儿会改变它
   a=10;
   printf("%d",a);
   return 0;
}

运行结果:

10

请添加图片描述

当我们在int a=100前加一个const来修饰

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
    //const修饰的常变量演示
   const int a=100;//在这儿
   a=10;
   printf("%d",a);
   return 0;
}

运行的结果:

运行错误,无实际输出

请添加图片描述

我们可以知道,const如果修饰一个变量,再给变量换一个值是不被允许的,相当于一个常量,但它还有变量的属性,所以我们就叫它是const 修饰的常变量

为什么说它具有变量属性呢?

我们来证明一下:

再新了解一个东西,数组,当我们来写代码的时候,有时候需要写很多的变量,很麻烦,这时候我们使用数组arr[ ],(a[ ],hin[ ]都随便,自己起一个名),在数组的[ ]中只能放常量,比如arr[5],相当于你直接定义了5个变量,里面是不能放变量的,根据这个原理我们来证明一下const 修饰的常变量是否具有变量属性

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	const int a = 100;
	int arr[10] = {0};
	return 0;
}

可正常运行

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	const int a = 100;
	int arr[a] = {0};
	return 0;
}

运行结果:

出现了错误,说明const 修饰的常变量具有变量属性

请添加图片描述

我有一个大佬(我认为的大佬,哈哈哈)是这样理解的:假设变量是一个空间,常量是一个实际值,变量用来容纳常量,const只是锁定了值,但是并不是把空间变成数值

#define 定义的标识符常量

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#define MAX 100//here

int main()
{
printf("%d\n",MAX);
int a=MAX;
printf("%d\n",a);
return 0;
}

运行的结果:

100

100

请添加图片描述

可以看出来,MAX被定义为了100,无论是直接打印还是给变量一个值都可以,想用的时候就可以拿出来使用,这个MAX就是标识符常量,也就是#define 定义的标识符常量。(#define也是可以定义一个字符串的,不局限于数字)

枚举常量

我生活中一些值是可以一一列举出来的,比如性别,我们初步来了解一下,毕竟只是初始c语言,

#include <stdio.h>

enum Sex
{
    MALE,//男
    FEMALE,//女
    SECRET//不确定
};
//enum Sex未来的可能取值就是MALE,FEMALE,SECRET,它们三个就是枚举常量

int main()
{
    //枚举常量演示
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    //注:枚举常量的默认是从0开始,依次向下递增1的

注意,这里enum Sex里面三个枚举常量并不开辟空间,而且也是不能改变的,改变就会报错

到此这篇关于适合初学者的C语言常量类型的讲解的文章就介绍到这了,更多相关C语言 常量类型内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯