个人学习C++过程中对const的总结:初始化系列之用字面值常量与其他类型的值初始化的区别(一)

const这个系列博大精深,在学习过程一点一点积累记录。但是由于随笔在发布之后不能修改,有了新的想法之后不能再在原随笔上修改,只好用一个个系列来慢慢积累。

哈哈,在发布之后发现是可以继续编辑的,好吧,不管了,这种方式挺好。

正文:

昨晚接触到一个算法题目,回文字符串,在网上找了某段代码,但是发现有点问题,原形大概如下:

....

const int len=mystr.size();  //mystr是string的一个实例,其实我挺奇怪这里为什么用int而不是string::size_type或者auto,算了,这个不是这里重点

int array[len][len];

....

然后上面数组的定义错误,原因是len不是常量值。

刚才又遇到另外一种情况:

...

const int len=10;

int array[len][len];

...

在这里代码没有问题。后来结合书和网上的资料。第二种情况是在编译过程中初始化,然后在编译过程中已经用10把len替换掉,所以数组定义的代码能通过编译。

但是第一种情况,len需要在运行过程中才初始化,在编译过程中系统不知道len是什么,所以编译出错。

另外,除了函数,用普通的变量也是不行的,例如下面的代码:

int a=10;

const int len=a;

int array[len][len];

这是个人在学习中的一些收获,各路大神不喜勿喷。

时间: 2024-10-05 18:13:35

个人学习C++过程中对const的总结:初始化系列之用字面值常量与其他类型的值初始化的区别(一)的相关文章

利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)

利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)   作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $("").css()   这里css是小写的,用 HBuilder 编写补全是大写的..这里要注意 主要使用的方法:jQuery 隐藏 / 显示    jQuery 淡出淡入 需要注意的知识点: 效果的样式: 代码如下:(亲们 自己展开拉~) 1 <!DOCTYPE html> 2 <

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position:absolut; 1.相对定位(div与div之间的关系)        body 标签其实就是一个大的盒子,在body里面设置 两个盒子div1 和 div2 ,而且两个盒子都给了它一个相对定位:position:relative;,那么div2 就会相对于 div1 排版,排在div1的下面,

学习Hadoop过程中遇到的困难

1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out 这是reduce预处理阶段shuffle时获取已完成的map的输出失败次数超过上限造成的,上限默认为5.引起此问题的方式可能会有很多种,比如网络连接不正常,连接超时,带宽较差以及端口阻塞等,通常框架内网络情况较好是不会出现此错误的. 2:Too many fetch-failures Answer: 出现这个问题主要是结点间的连通不够全面. 1) 检查 ./etc/h

当学习前端过程中心态发生了变化

学习前端的过程中,我们会遇到各式各样的问题.有的是粗心大意,有的是知识理解的偏差,有的只是自己疲惫所致.这些问题一担越陷越深,都会人让自己的心态产生波动,我们只要想出各种方法来解决问题,才能让自己的心态恢复稳定. 前端相比后台来说,是最直接面对用户群的岗位,用户在访问网站时最直观的就是前端页面.网站出现任何的问题用户所抱怨也是最直观的东西.这就对前端要求提出了更高的要求.我们的职责就是精准的还原出设计图.可以说是经常会和1px的像素较真的工作,偏差也只能在几个像素值之间.这样较真的工作往往都会让

学习javascript过程中的心得体会

在看到这个编程练习的时候,我的第一反应是JS居然强大到可以代替JSP了.但仔细想想,其实这只是表面的删除,增加,并没有对数据库的数据产生任何影响,所以,JSP还是王道啊!233333 练习过程中遇到的问题,知识点总结 1.由于很多时候JS是写在head前面的,调用一些body里的元素ID,而此时body尚未载入,就会报错,找不到该元素,所以写成window.onload=function() {//调用一些元素..}写在head的前面,这样再调用就不会出错了

学习Android过程中遇到的问题及解决方法——电话监听

也许有时你会有这样一个需求:通电话时有一个重要的事需要记下来或者和一个陌生人特别是大骗子通话时,这是就想如果能把通话录下来就方便多了.(这才是我写这个代码的目的!!!) 在此过程中,犯了一个很大的错误.对电话状态还不熟悉就开始编程,使得我就算编写正确也出现各种bug. 先将代码列出来,供大家参考,然后解释错误和相关知识. activity_main.xml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <L

学习JSP过程中的入门知识

俗话说的好,“万事开头难”,每每学一种新东西,起初的时候总是让人十分恶心.当然本人在学习JSP时也是如此,没有一条清晰的主线是很迷茫的.下面我给大家分享一点笔记,希望对初学者能有一点帮助. 首先我们来看一下静态网页的执行过程: 1.用户首先在浏览器的地址中键入要访问的网页地址(即:URL uniform resourse locator,统一资源定位符)并回车触发这个请求. 2.浏览器将请求发送到指定的web服务器上. 3.web服务器接收这些请求并根据.html的后缀名判断请求是HTML文件.

记录在学习ML过程中,在MATLAB中集成LibSVM时遇到的问题

前几天写了一下自己对SVM中关键的距离问题的理解,后面会继续记录自己对该模型其他问题的理解,今天想试试SVM在"西瓜书"那个"阿尔法3.0"数据集上的效果.于是查到了"湾湾"教授林智仁先生大牛等写的一个开源包LibSVM,并且该library可以与很多平台兼容,有很多语言版本,支持java .C++.C .MATLAB等,我们可以在林教授主页上下载.LibSVM地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm

学习MYSQL过程中自己写的数据库操作

2119731621 查看所有数据库 show databases; 进入数据库 use 数据库名字: 创建数据库 create database 数据库名字 [charset/character set 字符集] 根据数据库设置中文编码 set names 大写的中文编码; //如set names UTF8; 查看数据库的创建语句 show create database 数据库名字 查看所有表 show tables; 查看一张表的所有内容 select * from 表名; 修改数据库的