原创笔记,转载请注明出处!

点击【关注】,关注也是一种美德~


程序一:

我们知道数组的下标不能为变量,必须是一个确定的值。在C语言中看程序:

#define a 10

int main()

{

//第一部分

int c=20;

int d=10;

int arr[c+d];

//第二部分

//int const a=20;

//int const b=10;

//int arr[a+b];

return 0;

}

理所当然的编译错误,因为数组下标不能是变量。

在C++中看相同的程序。在C++中这点没有区别,数组下标不能为变量。同样会编译错误。

程序二

继续在C语言中看程序修改:

//#define a 10

int main()

{

//第一部分

//int c=20;

//int d=10;

//int arr[c+d];

//第二部分

int const a=20;

int const b=10;

int arr[a+b];

return 0;

}

发现编译错误!错误原因跟修改前一致!

也就是说:C语言中const定义的a、b实质并不是常量!还是变量所以称之为“常变量

在C++中看相同的程序:

int main()

{

//第一部分

//int c=20;

//int d=10;

//int arr[c+d];

//第二部分

int const a=20;

int const b=10;

int arr[a+b];

return 0;

}

编译通过!!!

结论

C++中的const修饰的是一个真正的常量而不是C中变量(只读。C++中在const修饰的常量编译期间,就已经确定下来了。


原创笔记,转载请注明出处!

更多精彩请关注微信公众号:依法编程


 

C++笔记019:C++中的const修饰的是一个真正的常量的更多相关文章

  1. (原+转)C++中的const修饰符

    const int a; int const a; 这两个写法是等同的,表示a是一个int常量. 简记:const后面是什么就限定什么(因为C++标准规定,const关键字放在类型或变量名之前等价的) ...

  2. C++中使用const修饰指针

    在本文中呢,主要讲解四个方面,即:常量数据的与否和常量指针的与否中const如何对指针进行修饰: 1.指向非常量数据的常量指针 对于一个指向非常量数据的常量指针,我们应该清楚的知道,在这我们注重的是指 ...

  3. Delphi 中 函数参数中的 const 修饰符的本质以及注意事项

    来自:http://blog.csdn.net/farrellcn/article/details/9096787 ------------------------------------------ ...

  4. const修饰符相关

    const修饰符相关 const修饰符表明一个变量是常量,大致分为三类:常量数组(等同于常量指针),常量指针,指向常量的指针. 常量数组中数据都是不可修改的,任何试图修改常量数组中的数据的操作都会报错 ...

  5. C/C++ 中 const 修饰符用法总结

    C/C++ 中 const 修饰符用法总结 在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家 ...

  6. [原创] 基础中的基础(二):C/C++ 中 const 修饰符用法总结

    在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助.作者是菜鸟一 ...

  7. 转载----C/C++ 中 const 修饰符用法总结

    感谢原创作者,写的好详细.不忍错过,所以转载过来了... 原文地址: https://www.cnblogs.com/icemoon1987/p/3320326.html 在这篇文章中,我总结了一些C ...

  8. [C++]const修饰符

    Date: 2014-1-1 Summary: const 修饰符笔记 Contents: 1.const 修饰符 声明一个常量数据类型 , 在编译时就确定数据类型 2.const 与 指针 一般情况 ...

  9. C++ 中的 const 详解

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4235721.html 1.为什么使用 const int 而不使用 #define 在使用# ...

随机推荐

  1. 为什么很多类甚者底层源码要implements Serializable ?

    为什么很多类甚者底层源码要implements Serializable ? 在碰到异常类RuntimeException时,发现Throwable实现了 Serializable,还有我们平进的ja ...

  2. Eclpse 标准版,在联想一体机上报 eclipse failed to create the java virtual machine

    环境:联想一体机 IdearCentre B320I, XP系统  32位操作系统 下载了最新的JDK和Eclipse标准版,安装之后,启动eclipse报错 这个错误,以前还真没有遇到过,网上搜了下 ...

  3. android的Drawable详解

    Drawable简介 Drawable有很多种,用来表示一种图像的概念,但他们又不完全是图像,他们是用过颜色构建出来的各种图像的表现形式.Drawable一般都是通过xml来定义的 ,当然我们也可以通 ...

  4. iOS中 KVO 键值观察者

    KVO Key-Value-Obsever 键值观察者 1.首先要有一个观察者,此时被观察者是自己找一个观察者观察自己的key值对应的value值有没有改变,如果改变了就可以做一些响应的操作 创建一个 ...

  5. Google的两种广告推广方式

    1搜索关键字广告推送:AdWords: 覆盖广泛:在全球最大的搜索和网络平台上进行推广. 定位精准:锁定目标客户群体,让潜在客户轻松找上门. 成本可控:仅当用户点击广告时,您才支付费用. 2.网站内容 ...

  6. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  7. c语言和java的区别

    今晚读了一下c程序设计语言,这是一本经典书籍,发现C语言和java有很多是相同的,毕竟java是由c语言进化来的. 我大概从我自己的思考来谈谈不同点 1.c语言是面向过程,主要单位是函数,变量和函数的 ...

  8. C语言实现ifconfig获取网卡接收和发送流量统计

    在Windows下我们可以利用ipconfig命令获取网卡的相关信息,在Linux下命令是ifconfig 我们可以获取的信息更为丰富,其中包括网卡接收和发送的流量,用C语言实现这个命令并不是一件简单 ...

  9. Ext JS 5 beta版发布

    原文:Announcing Public Beta of Ext JS 5 我们非常高兴的宣布,Sencha Ext JS 5 beta版本开始进行公测了.这个beta版本可以让你.我们Sencha社 ...

  10. LeetCode之“树”:Validate Binary Search Tree

    题目链接 题目要求: Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is ...