一起talk C栗子吧(第一百六十五回:C语言实例--C语言中的常量)



各位看官们,大家好,上一回中咱们说的const关键字的例子,这一回咱们说的例子是:C语言中的常量 。闲话休提,言归正转。让我们一起talk C栗子吧!



看官们, 我们在上一回中介绍了const关键字,大家都知道被const修饰的都是常量。提到常量,我们在程序中经常使用它,这一回中我们一起看看C语言中的其它常量。

大家都知道,常量的值是固定的,而且不能被修改。在C语言中,一共有四种实现常量的方式,它们分别是:

  • 字面常量
  • const
  • 枚举。

接下来我们分别介绍这四种实现常量的方式。

字面常量:字面常量就是我们我们直接使用的数值和字符串,例如:

int a=3;
 char *str="hello"

这里的3和hello就是字面常量。

:宏主要是用来做替换的,如果它替换的内容是字面常量,那么也可以把宏当作实现常量的方式。例如:

#define SIZE 16;
int a[SIZE];

我们把宏SIZE定义为字面常量16,在使用它的时候,它就会把宏替换为16,例子中的代码表示定义了大小为16的int型数组。

枚举:枚举中的成员有具体的数值,为了提高代码的可读性,我们使用枚举成员的名字,但是大家不要忘记,枚举成员是int类型的常量,它有具体的数值,这点类似宏。例如:

    enum
    {
        MON=1,
        TUE,
        WED,
        THU,
        FRI,
    };
    printf("today is Week: %d \n",FRI);

我们可以直接输出枚举成员的值,因为它是int类型的常量。在项目中,经常在枚举中定义一些错误的类型,在其它函数中就可以返回枚举中的成员。这样做有两种好处:

  • 第一:我们通过成员名就能知道错误的类型,提高了代码的可读性;
  • 第二:我们可以int类型的值来判断函数返回值,进而确定错误的类型;

const:我们在上一章回中已经介绍过,这里不再做介绍了。

看官们,介绍完这实现常量的方式外,我们对他们做一个总结:

  • 字面常量不推荐使用,如果想用的话,可以使用宏或者const常量替换它。
  • 对于一些连续的常量,推荐使用枚举,比如我们例子中的星期一到星期五。
  • 对于不连续的常量,推荐使用宏。
  • 而const最常用的还是修饰指针,这样可以确保程序中不会通过指针来修改指针所指的值。

各位看官,关于C语言中常量的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解


时间: 2024-10-10 05:03:26

一起talk C栗子吧(第一百六十五回:C语言实例--C语言中的常量)的相关文章

一起talk C栗子吧(第一百六十九回:C语言实例--再谈内置宏)

各位看官们,大家好,上一回中咱们说的是C语言中的布尔–bool类型的例子,这一回咱们说的例子是:再谈内置宏 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在第一百二十四回中介绍了C语言中的内置宏,当时介绍了常用的内置宏_LINE_和_FILE_.并且介绍了如何使用它们来输出它们所在位置的行号和所在的文件名.大家都知道,这两个内置宏经常被用来在文件中添加调试信息.因为我们写的程序难免会有错误,所以需要对程序进行调试.在文件中加入内置宏后,我们通过调试可以快速地找到错误发生在哪个

一起talk C栗子吧(第一百六十四回:C语言实例--const关键字)

各位看官们,大家好,上一回中咱们说的是三目运算符的例子,这一回咱们说的例子是:const关键字 .闲话休提,言归正转.让我们一起talk C栗子吧! 我们在前面章回中介绍了很多系统编程接口,在这些接口的参数中经常出现const关键字,有看官对此提出了疑问"这些const有什么用处呢?".今天,我将和大家一起来解决该疑问. 在C语言中const是一种修饰符,经常用来修饰变量.使用它修饰以后的变量,就成为常量.常量是不允许被修改的.下我们举个简单的例子来说明const的用法. 1 #inc

一起talk C栗子吧(第一百六十八回:C语言实例--C语言中的布尔--bool类型)

各位看官们,大家好,上一回中咱们说的是控制终端字符颜色的例子,这一回咱们说的例子是:C语言中的布尔–bool类型 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,在数字电路中我们经常会遇到布尔类型,其实在编写软件的过程中也会使用布尔类型.布尔类型的变量只有两种值:真和假.在实际的编程过程中,我们经常定义宏,然后使用1表示真,0表示假.下面是具体的例子: #define TRUE 1 #define FALSE 0 例子中定义了两个宏,一个是TRUE,它的值是1,表示真:另外一个是F

一起talk C栗子吧(第一百七十五回:C语言实例--获取当前终端的行数和列数)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们说的例子是:获取当前终端的行数和列数 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了termios相关的信息,以及termios提供的编程接口,通过这些接口可以操作终端,今天我们再介绍一些操作终端的编程接口,通过这些接口可以获取当前终端的行数和列数,这便是我们今天的主题. int setupterm(char *term, int fd, int *errret); 该函数用来修改当前

一起talk C栗子吧(第一百三十五回:C语言实例--exec系列函数一)

各位看官们,大家好,上一回中咱们说的是"创建线程时的内存细节"的例子,这一回咱们说的例子是:exec系列函数.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面介绍创建进程内存细节的章回中提到过exec系列函数,当时并没有做详细的介绍.今天我们将和大家一起看看exec系列函数. exec系列函数可以把某个进程导入到调用exec系列函数的进程中,并且把当前进程替换成一个新的进程,在前面的章回中我们也介绍了,执行exec系列函数会触发写时复制,因此新进程拥有自己的代码区

第一百六十五节,jQuery,过滤选择器

jQuery,过滤选择器 学习要点: 1.基本过滤器 2.内容过滤器 3.可见性过滤器 4.子元素过滤器 5.其他方法 过滤选择器简称:过滤器.它其实也是一种选择器,而这种选择器类似与 CSS3 (http://t.mb5u.com/css3/)里的伪类,可以让不支持 CSS3 的低版本浏览器也能支持.和常规 选择器一样,jQuery 为了更方便开发者使用,提供了很多独有的过滤器. 一.基本过滤器 过滤器主要通过特定的过滤规则来筛选所需的 DOM 元素,和 CSS 中的伪类的语法类 似:使用冒号

第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的查询

第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)的查询 elasticsearch(搜索引擎)的查询 elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据 查询分类: 基本查询:使用elasticsearch内置的查询条件进行查询 组合查询:把多个查询条件组合在一起进行复合查询 过滤:查询同时,通过filter条件在不影响打分的情况下筛选数据

一起talk C栗子吧(第一百六十二回:C语言实例--套接字知识体系图)

各位看官们,大家好,上一回中咱们说的是套接字通信模型的例子,这一回咱们说的例子是:套接字知识体系图.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们, 我们在前面的章回中介绍了许多关于套接字的内容,有些看官感觉知识比较乱,不断地摇头叹气,而且还在吟诗:剪不断,理还乱,是离愁.不对,是套接字.别有一番滋味在心头.哈哈.这位看官太有才了呀,连古诗也用上了.今天我和大家一起整理下套接字的知识,到时候将会是一番喜悦的滋味在心头. 看官们,我们最开始介绍的是套接字的概念,接着介绍了套接字的属性,

一起talk C栗子吧(第一百六十回:C语言实例--套接字通信模型一)

各位看官们,大家好,上一回中咱们说的是基于AF_INET域数据报套接字通信的例子,这一回咱们说的例子是:套接字通信模型 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍的内容中提到过通信的次数,当时只是说可以自己设置通信的次数,并没有做详细的介绍,今天我们一起来看看如何设置通信的次数,以及与它的扩展:通信模型. 迭代通信模型 看官们,通信次数的控制主要体现在服务器端,下面是核心代码: 流套接字通信 while(index++ < 2) { client_fd =