首页 > 其他分享 >复习课7 常量

复习课7 常量

时间:2023-09-18 21:34:24浏览次数:33  
标签:10 const 复习 常量 int 变量 define

一.导入

我们之前就说过生活中是有很多变化与不变的量的,我们将变化的量称为变量,将不变的量称为常量

常量在生活中也有很多,如:血型、性别(不考虑特殊情况)、身份证号,那么在C语言中有哪些常量呢?

二.C语言中常量的分类

字面常量

const修饰的常变量

#define定义的标识符常量

枚举常量

接下来我将为大家逐个进行演示这些常量的用法

三.常量的用法:

1.字面常量

其实字面常量很好理解,比如 520 3.14这些都是字面常量,接下来我将在编译器中写几个字面常量的用法,代码如下:

int main(void)
{
    520;     //整型常量
    3.14;    //浮点型常量
    'A';     //字符常量
    "hello"; //字符串常量
    return 0;
}

这也是C语言中较为简单的常量

2.const修饰的常变量

先问大家一个问题,这段代码执行后程序输出的值是多少:

#include<stdio.h>
int main(void)
{
    int a = 10;
    a = 20;
    printf("a=%d\n",a);
    return 0;
}

很显然输出的是20,虽然变量 a 在一开始初始化成了10,但是下面一行代码却将20赋给了a,所以a的值最终为20,程序运行结果如图所示:

复习课7 常量_字面常量

但是我们改一下上述代码,将:

int a =10;

改为:

const int a = 10;

其余代码保持不变,我们再次编译程序就会发现程序报错了,如图所示:

复习课7 常量_字面常量_02

编译器告诉我们:无法分配给具有 const 类型的变量 a 也就说当这个变量被const修饰后这个变量的值不可以再改变了,所以我们将用const修饰的变量称为常变量

注意⚠️:这里变量虽然不可以被直接改变,具有常量的特性但是其本质依然是一个变量,在声明数组的时候如果用常变量来指定数组的大小是非法的!

示例:

int arr[10] = {0};   //合法
int i =10;
int arr[i] = {0};    //非法 禁止使用变量制定数组大小
const int i = 10;
int arr[i] = {0};    //非法 使用const修饰的常变量其本质依然是变量

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

当我们需要定义一个常量的时候我们可以这样子写:

#define PI 3.14

这样子我们就定义了一个标识符为PI,值为3.14的常量,我们可以在程序中来输出这个常量:

#include<stdio.h>
#define PI 3.14
int main(void)
{
printf("PI=%.2f\n",PI);
return 0;
}

由于3.14是浮点数,所以我们在使用printf()的时候需要将转义字符%d改成%f,这样就可以正常的输出了,程序运行结果如下:

复习课7 常量_标识符_03

我们也可以使用#define 来创建字符串常量,代码如下:

#define STR "abc"

我们可以使用printf()函数来输出字符串:

printf("STR=%s",STR);

作为标识符常量其值也是不可被改变的,如以下代码编译时就会报错:

#include<stdio.h>
#define NUM 500
int main(void)
{
NUM = 1000;
return 0;
}

复习课7 常量_标识符_04

原因是:NUM是一个标识符常量不可被改变的

4.枚举常量

我们这里用三原色来作为枚举的对象,代码如下:

#include<stdio.h>
enum Color{
    RED,
    YELLOW,
    BLUE

};
int main(void)
{
enum Color a = RED;
return 0;
}

这里我们创建了一个变量a,用于代表RED,但是如果我们再去给变量a赋值程序就会出错,如图所示:

复习课7 常量_#define_05

                                                                                                        2023/9/18

                                                                                                         王起舟

标签:10,const,复习,常量,int,变量,define
From: https://blog.51cto.com/u_16183773/7516068

相关文章

  • 软件工程 之 (XMUT)Java期末复习题及答案2
    {calloutcolor="#f0ad4e"}软件工程实用案例教程https://www.ivanky.cn/XMUTRG/304.htmlJava期末复习题及答案https://www.ivanky.cn/XMUTRG/361.html计算机网络复习题库https://www.ivanky.cn/XMUTRG/405.html(XMUT)Java期末复习题及答案选择题{collapse}{collapse-i......
  • 软件工程 之 (XMUT)计算机网络复习题库
    {calloutcolor="#f0ad4e"}软件工程实用案例教程https://www.ivanky.cn/XMUTRG/304.htmlJava期末复习题及答案https://www.ivanky.cn/XMUTRG/361.html计算机网络复习题库https://www.ivanky.cn/XMUTRG/405.html计算机网络复习题库考试酷--自测习题{collapse}{/......
  • python复习
    一python简介#主流语言的区别c:c代码写完,编译(不同平台),跨平台运行,linux上源码安装软件,自行编译java:一处编码,处处运行,java是编译型还是解释型?编译型,编译过程---把java源代码编译成字节码文件.class---不能直接运行在操作系统上---》jvm(java虚拟机),jvm运行至少要300M内存jdk......
  • 不要使用count(列名)或count(常量)来替代count(*),count(*)就是SQL92定义的标准统计行
    慢SQL治理经验总结https://mp.weixin.qq.com/s/LZRSQJufGRpRw6u4h_Uyww慢SQL治理经验总结原创 药糖 大淘宝技术 2023-09-1816:20 发表于浙江 在过去两年的工作中,我们团队曾负责大淘宝技术的慢SQL治理工作,作为横向的数据安全治理平台,如何快速准确地发现部门内所有应用......
  • 2023年了,复习了一下spring boot配置使用mongodb
    前言MongoDB是一个基于分布式文件存储的开源数据库系统,使用C++语言编写。它是一个介于关系数据库和非关系数据库之间的产品,具有类似关系数据库的功能,但又有一些非关系数据库的特点。MongoDB的数据模型比较松散,采用类似json的bson格式,可以灵活地存储各种类型的数据MongoDB的优......
  • 复习课6 变量的作用域与生命周期
    一.导入我们之前讲了局部变量与全局变量的区别,而作用域其实变量在程序的哪一段代码中能起到作用,哪里不能起到作用的一个概念,所以我们在讲作用域的时候很大一部分都是与上一篇文章相关的,所以如果没有看过上一篇文章建议先回看,那我们正式开始!二.作用域(局部变量)我们先来看一段简单的代......
  • 复习C语言-题目 1008: [编程入门]成绩评定
    题目描述给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。输入格式一个整数0-100以内输出格式一个字符,表示成绩等级样例输入复制90样例输出复制A1#inclu......
  • 复习C语言-题目 1009: [编程入门]数字的处理与判断
    题目描述给出一个不多于5位的整数,要求1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123输入格式一个不大于5位的数字输出格式三行第一行位数第二行用空格分开的每个数字,注意最后一个数字后没有空格第三行按逆序输出......
  • Linux与Shell编程期末复习
    Linux中各类特殊变量的含义$#是传给脚本的参数个数$0是脚本本身的名字$1是传递给该shell脚本的第一个参数$2是传递给该shell脚本的第二个参数$@是传给脚本的所有参数的列表$*是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$是脚本运行的当前......
  • TienChin 渠道管理-配置字典常量
    在字典管理当中添加渠道状态channel_status:渠道状态分别为:正常,键值为1,回显样式为success禁用,键值为0,回显样式为info!>有个注意点:Vue3当中v-for与v-if不能写在一起。在上一节编写前端展示渠道信息时,出现了如上图的警告,某个标签的type属性导致的,这是警告,查看......