首先这种定义方式是可以通过编译的。
int i; //定义(注意是定义,意味着分配了内存)一个int型变量i,同时没有初始化。那么i的值就是分配内存位置的值,这个值可能为任意值。
const int val = i; // 定义一个const int对象val,并初始化,那么初始化后val的值就是刚才i内存位置的值。定义后,val即便仍然是左值(意味着可赋值),但任何修改val的尝试都会导致编译错误。所以val的值是不可修改了。
所以说,上述方式没错,但i没有初始值,导致定义val是没有意义的。
你可以试试int i = 10;
const int val = i;
cout << i << endl;
cout << val << endl;
i = 5; //修改
cout << i << endl;
cout << val << endl;
就明白啦。
const变量默认是在定义该变量文件的局部变量。而如果定义在头文件中,则必须使用常量表达式进行初始化,因为编译器需要在编译时就计算出后面初始化表达式的值。像这里,如果在main函数体内这么定义,是可以的,因为是局部变量。
const的语义就是要这个变量不能修改,在定义了一个如const int i = 10; 然后再赋值如 i =11;就是不合法的了。

int i ; const int val=i ; 在C++中这种赋值对吗?相关推荐

  1. const int *,const int * const和int const *有什么区别?

    我总是搞砸了如何正确使用<code>const int* , const int * const和int const * . 是否有一组规则定义您可以做什么和不能做什么? 我想知道在分配, ...

  2. const int、const int *、int *cosnt、const int * const、const int 的区别

    2018-01-04 创建人:Ruo_Xiao 2018-10-17 修改人:Ruo_Xiao 邮箱:xclsoftware@163.com 修改内容:增加对 delete 指向常量的指针的可行性的说 ...

  3. const int和const int本质区别

    很简单的来说,const int&是引用传值的方式,const int是值拷贝的方式 引用传值,简单的来说,就是把内存地址传过来,本身没有重新分配一块内存,而值拷贝的方式,则是重新从内存中分配 ...

  4. const int *,const int * const和int const *之间的区别

    文章目录 int const* int *const const int* const 记忆图 参考文档 int const*     int const* 是指向常量整数的指针.     这意味着被 ...

  5. C++函数传参int a,int *a,int a,const int a的区别

    C++函数传参int a,int &a,const int &a的区别 # 传参方式                  作用 int a 值传递 无法改变a的值 int *a 地址传递 ...

  6. c语言中 int和const int的区别

    一.const int 和int 的区别 具体的是 int定义的是一个变量,不需要初始化const int定义的是常量,需要初始化 1.返回值 const int & 是返回这个数值的一个常量 ...

  7. 2020-09-21C++学习笔记之与C语言区别和加强——四种const意义(const int a; int const b; const int *c; int * const d)

    2020-09-21C++学习笔记(const int a; int const b; const int *c; int * const d) 这两天在上课更新晚了. 1.C/C++中的const ...

  8. 对于这个函数const int func(const int a) const声明中,三个const分别是什么意思?...

    第一个const 函数的返回值类型是const. 这个const修饰没什么意义,你可以想象一下: 既然是函数的 返回值,而且是值传递的形式,是否const有什么意义.如果指针(引用)传递,怎表示返回值 ...

  9. const int *p说明不能修改_C语言关键字const和指针结合的使用

    C语言中,const 的作用是把变量变为一个只读的变量.与指针结合起来,有以下几种用法,下面分别进行说明. const int p; const int *p; int * const p; cons ...

最新文章

  1. mysqljs在koa2中的正确姿势
  2. Android之从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
  3. BZOJ 1997: [Hnoi2010]Planar( 2sat )
  4. Colima:MacOS 上的极简容器运行时和 Kubernetes
  5. Errors while executing git --version. exitCode=128 errors: fatal: open /dev/null or dup failed: No s
  6. mysql 自定义序列号_在mysql中怎样设置,才能自动添加序列号
  7. 在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现
  8. PAIP.ASP.NET FTP SKIPLIST
  9. BXP因为时间错误而丢失license的修复方法(转)
  10. ansys命令流——布尔运算
  11. [工业互联-7]:工业控制电气自动化系统与主要元器件
  12. 【Java架构师入门到精通】java分布式架构有哪些技术
  13. R语言 线性混合效应模型实战案例
  14. 如何使用 Filebeat,ILM 和数据流跨多个索引管理 Elasticsearch 数据
  15. 前端程序调试方法总结--高级版
  16. vb.net html图片,手把手教你VB.NET DataGrid图片显示
  17. 简单园区网络基本架构
  18. Unix环境高级编程 笔记
  19. Deinterlacer(影像解交错)概念与解析
  20. 【print的格式化输出】

热门文章

  1. 容联云 实现验证码发送
  2. 安卓内存监控工具,2021年Android面试心得,系列教学
  3. 在xp系统电脑上建立宽带连接服务器吗,windows xp系统如何在电脑桌面上创建ADSL连接...
  4. 杨超越的经历故事性太强了,现实版的娱乐圈爽文
  5. Google推广的优势
  6. 牛叔说电影-社会底层是怎样炼成的
  7. 复变函数 —— 0. 连接复数与三角函数的欧拉公式
  8. ACM-ICPC 成为方正快手等企业 HR 的战场
  9. Windows PC上创建大数据职业技能竞赛实验环境之一--基本环境的搭建
  10. CSP-J 2021_3_网络连接