zoukankan      html  css  js  c++  java
  • 个人学习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];

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

  • 相关阅读:
    (转)sql server 生成树形菜单
    在Sublime Text 3中配置Python3的开发环境/Build System
    按回车键提交表单 问题
    多页面 返回 到同一页面
    sql 查找出表里所有字段
    sql 创建表变量,临时表
    sql语句中数据类型转换函数:CAST 和 Convert
    sql isnull函数
    判断值是否为整数
    TSQL游标使用
  • 原文地址:https://www.cnblogs.com/liangweixin/p/5353241.html
Copyright © 2011-2022 走看看