首页 > 其他分享 >C语言:初识五大常量

C语言:初识五大常量

时间:2023-11-11 13:33:59浏览次数:36  
标签:常量 C语言 枚举 初识 arr2 数组 arr1 define

今天我们介绍的是C语言中的五大常量,分别是字面常量,const常量,#define定义的标识符常量,字符串常量以及枚举常量。以上的五大常量我都会依次介绍。

1、字面常量

字面常量也就是我们在程序中见到的数字,比如100,200之类,较为基础我们就简单带过,我们要重点了解下面的四种常量。

2、const常量

const是constant的缩写,也就是长期不变的常量。我们知道int a=10;作为一个全局变量,我们可以在之后的代码中直接通过int a=20;的方法直接修改a的值。而如果在Int a之前加一个const的话这个a=10的值也就不可再修改了。用于修饰一些不可能会改变的常量,比如一个人的生日,一个物品的生产日期等等不可能改变的量。

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

在#include<stdio.h>声明之后我们可以用#define 常量名 常量名的值这样的格式定义一个标识符常量。举个例子:

#include<stdio.h>

#define BIRTHDAY 2004

int main(){

int arr[BIRTHDAY]={0};

return 0;

}

在这样的代码中,我们已经知道整型数组arr中如果BIRTHDAY不是一个常量的话,arr数组是无法运行的,所以可以看出,通过#define这种方法可以直接定义一个常量。(数组的详细知识我会在之后更新的博客中展开介绍)

4、枚举常量

在生活中有许多量是可以通过枚举表示的,举个例子,性别这个量,存在着男性,女性,未知性这三种常量。这样就可以通过枚举关键字enum来表示。代码如下:

#include<stdio.h>

enum Sex{

MALE,

FEMALE,

UNKNOWN};

int main(){

printf("%d %d %d\n",MALE,FEMALE,UNKNOWN);

return 0;

}

这样的代码输出的是0 1 2.为什么是这样?是因为在enum Sex这个枚举常量中电脑会自行把第一个元素MALE赋值为0,第二位赋值为1,以此类推,所以会输出成这个结果。

5、字符串常量

首先字符串用“”括住,单字符用‘’括住。在字符数组中,字符串会在结束时系统自带一个\0作为结尾,但如果时多个单字符组成的字符数组就不会有\0作为结束标识符。我们举个例子就懂了:

#include<stdio.h>

int main(){

char arr1[]="abc";

char arr2[]={'a,''b','c'};

printf("%s %s",arr1,arr2);

return 0;

}

这样的两个数组的打印结果是abc abc烫烫烫烫bc

显而易见,arr1的输出没有问题,但arr2的输出出现乱码。为什么会这样呢?就是我们刚刚提到的,在字符串类型的数组中,系统默认了“abc”的结束码‘\0’,而在多个单字符的数组中,系统无法自动给我们添加'\0'作为结束码,这就导致了我们的arr2无法结束,直至出现乱码。

如何去验证我们这个猜想?

我们可以printf("%d %d",sizeof()arr1),sizeof(arr2);来验证一下

输出的结果果然是4 3

这就证明了arr1中确实是有4个元素,也就是'\0'。

标签:常量,C语言,枚举,初识,arr2,数组,arr1,define
From: https://blog.51cto.com/u_16352468/8316972

相关文章

  • C语言程序练习题10
    以下是一个示例的C语言程序代码,用于实现一个简单的计算器,可以进行加减乘除四则运算。#include<stdio.h>intmain(){floatnum1,num2;charoperator;printf("请输入第一个数字:");scanf("%f",&num1);printf("请输入运算符(+,-,*,/):");......
  • C语言之指针(中)
    动态内存分配动态变量所谓的动态变量是指:在写程序时无法确定它们的存在,只有当程序运行起来,随着程序的运行,根据程序的需求动态产生和消亡的变量。因此,动态变量的访问需要通过指向动态变量的指针变量来进行间接访问。当程序运行结束时,系统会自动回收指针占用的空间,但并不会回收指针指......
  • 【3.0】Go语言语法初识之变量
    【零】注释语法注释就是对代码的解释和说明,其目的就是让人们更加轻松的了解代码。注释是开发人员的一个重要的习惯。单行注释使用//开头多行注释使用/*开头*/结尾//package定义包名main包名packagemain//import引用库fmt库名import"fmt"//func定......
  • C语言入门:基本语法
    如果你刚刚接触到C语言,而且感到自己写不出代码,别灰心,这是正常的学习过程。学习编程是一个渐进的过程,不要急于求成。通过不断的实践和学习,你会发现编程变得越来越容易。当你刚开始学习C语言时,最好从一个简单的"Hello,World!"程序开始,这是学习任何编程语言的传统入门方式。以下是一......
  • C语言编程 C语言入门
    1.初识C语言(1){C语言程序设计教程笔记}1基础框架/*#include<stdio.h>//格式intmain()//输入{printf("helloworld\n");//打印system("pause");//显示return0;//返回}/2注释单行//整段/...*/或Ctrl+k+c注释Ctrl+k+u解除注释//char字符类型'W'字母int数字150float小数//%......
  • 看完C语言的发展历程对于Android的发展不在迷茫
    前言现在从事Android开发,前景怎么样呢?要是放在以前问起这个问题,我肯定拍胸脯的说赶紧来,狠狠赚上一笔!!!现在想想,移动互联网的发展不知不觉已经十多年了,MobileFirst也已经变成了AIFirst。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向AI、......
  • Jetty篇一之初识Jetty
    前言:               最近公司项目中用到了Jetty来作为项目的web容器,借此机会来分享一下我的学习心得。在学习Jetty之前,一定要了解一些Jetty的基本概念以及优缺点,这样才方便做更深入的学习,现在让我来慢慢揭开它的神秘面纱吧!基础:    什么是Jetty?      ......
  • C语言程序设计 答疑安排(2009春季 1-10周)
    C语言程序设计答疑安排(2009春季1-10周)地点:8-309,或者8-409,如果8-309,8-409没开门则到8-308教室。时间:黑老师,第六周,周四下午,2:10-4:00金老师,第七周,周二下午,4:10-6:00王老师,第八周,周三晚上,7:30-9:00王老师,第九周,周三晚上,7:30-9:00李老师,第十周,周三下午,4:10-6:00李老师,第十周,周五下午,2:10-4:00其......
  • C语言程序设计 实验题目
      -----------------------------------------编号:一题目:选择结构程序设计目的:见指导书110页。实验内容:教材:习题3.6,习题3.7习题3.6:参考例1.2,使用if语句,或者使用条件表达式。习题3.7:参考教材例题3.13,教材299页的math.h,不要使用10<=x<20.“无定义”,其余值用printf显示“无......
  • C语言程序设计 2009春季考试时间和地点
     课程名称考试时间监考教室考试人数C语言程序设计第11周周6(2009-05-09)19:00-21:00曲江10-40173C语言程序设计第11周周6(2009-05-09)19:00-21:00曲江10-40727C语言程序设计第11周周6(2009-05-09)19:00-21:00曲江10-40827C语言程序设计第11周周6(2009-05-09)19:00-21:00曲江10......