常量表达式概念与用处的关系_常量和变量有什么异同点

常量表达式概念与用处的关系_常量和变量有什么异同点1)什么叫常量表达式?        在编译期间进行求值的表达式。    1、字面值常量是常量表达式;如123,‘a’,3.14等    2、用常量表达式初始化的const对象也是常量表达式。如intconsta=5;语句中a就是常量表达式2)什么地方会用到常量表达式?        就目前所知道的有三个,后面如果发现再新增。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1)什么叫常量表达式?

        在编译期间进行求值的表达式。

        1、字面值常量是常量表达式;
如123,‘a’,3.14等
        2、跟字面值常量相关的一些表达式;
如123+3.14,2<<2等
        3、在
C++中用常量表达式初始化的const对象也是常量表达式,并且也是C++推荐的使用方式,而C语言不是。
如int const a=5;语句中a就是常量表达式

2)什么地方会用到常量表达式?

        就目前所知道的有三个,后面如果发现再新增。
        1、静态存储变量需用常量表达式初始化;
             
ps:C语言静态变量初始化中,可以把可执行文件想要初始化的值放在变量将会使用的位置,
当可执行文件载入到内存时,这个已经保存了正确初始值的位置将赋值给那个变量,因此必须使用常量表达式初始化。而C++中静态变量是动态分配的,即在程序运行时分配内存的,因此可以用变量对其进行初始化。
       
        2、case标签必须具有唯一的值,所以必须用常量表达式;
        
        3、定义一个数组,数组长度必须在编译时确定,必须为一个常量表达式

             
ps:为了便于维护,常使用#define为数值定义一个符号,如#define SIZE 50       int a[SIZE];
                      有些编译器允许声明动态数组,即用变量作为数组的长度,但此时不能对其进行初始化,即int a=5;int b[a];√   而int b[a]={1,2,3};×
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187792.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Microsoft Platform SDK 选择及在vc++6.0中的配置

    Microsoft Platform SDK 选择及在vc++6.0中的配置MicrosoftPlatformSDK选择及在vc++6.0中的配置转自http://hi.baidu.com/reddragon1314/blog/item/c6782188f00905

    2022年7月2日
    43
  • 利用CSkin组件设计漂亮的WinForm登录界面「建议收藏」

    利用CSkin组件设计漂亮的WinForm登录界面「建议收藏」众所周知,WinForm具有快速开发的优点,但是美观方面一直被人诟病,一般美化都是采用第三方的组件来满足美化效果,这里我也利用Cskin组件来设计一个具有一定美感的登录界面,CSkin下载CSkin的使用你可以自行查看下载后的文档或者另行百度,这里就不介绍了,关于CSkin的美化登录界面简单介绍,主要是利用背景图片结合CSkin界面和控件的效果来实现的,如果你中别人的登录界面,你也可以截取别人的登录界面,然后用自己的控件覆盖人家的登录输入位置,覆盖别人的logo或者系统名称等,这也是一种技巧。

    2022年5月27日
    43
  • Android四大组件Broadcast中注册广播registerReceiver流程源代码详解

    Android四大组件Broadcast中注册广播registerReceiver流程源代码详解在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式就更多了,这样看来,广播机制似乎是多余的。然而,广播机制却是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。在软件工程中,是非常强

    2025年10月27日
    2
  • 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar[通俗易懂]

    来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar[通俗易懂].TrimEnd()怀疑是否SqlBulkCopy是否存在某种bug,故而在系统中改写代码,用单个sql的插入数据方式,用循环逐条导入。结果是没问题。难道真的是SqlBulkCopy有某种bug?上网搜了一通,竟没有一条说有什么bug之类的。偶然一次发现,len函数取数据长度是去了尾部空格的。故而在代码中对用于批量导入的数据,导入前进行一次遍历,将该字段中数据用TrimEnd()去尾部空格…

    2022年7月20日
    18
  • Flink SQL Client综合实战

    Flink SQL Client综合实战

    2020年11月19日
    196
  • 计算机复试面试题总结「建议收藏」

    计算机复试面试题总结「建议收藏」面试问题之编程语言1。C++的特点是什么?封装,继承,多态。支持面向对象和面向过程的开发。2.C++的异常处理机制?抛出异常和捕捉异常进行处理。(实际开发)3.c和c++,java的区别?c是纯过程,c++是对象加过程,java是纯面向对象的4.纯虚函数?被virtual修饰的成员函数,再基类不能实现,而他的实现放到派生类中实现。5.什么是内存泄漏?没有de…

    2022年6月4日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号