c++ const 用法总结
最近第二次学习c++ , 却总是忘记const的一些用法, 所以记录一下笔记

忒困!
A: const指针位于 * 的左边
A : const 修饰指针指向的内容, 则内容为不可变量但指针可变;
称其为左定向, const 位于 * 的左边
int i = ;
int j = ;
const int *p = &i;
printf("%d\n", *p); p = &j; // it's ok *p = ; // it's error i = ; // it's ok
printf("%d\n", *p);
B: const指针位于 * 的右边
B: const 修饰指针, 则指针为不可变量; 可以改变值, 但不能改变地址
称其为右定向, const 位于 * 的右边
int a = ;
int * const p = &a; *p = ; int b = ; // it's error
p = &b; // it's error
printf("%d\n", *p);
printf("%d\n", a); // a也变成9 了
C: const指针位于 * 的两边
C: cosnt修饰指针和指针指向的内容, 则指针和指针指向的内容都为不可变量;
左定值, 右定向, const修饰不变量
int a = ;
const int * const p = &a; printf("%d\n", *p);
D:(int*)a和int*a的区别
不一样。(int*)a将指针变量a强制转换为整型指针,说明a一般不是一个整型指针,也可以是个整型指针。int*a,定义一个整型指针变量a
E: 阿里面试题
阿里C++笔试题:const int a = 10;int * p = (int *)(&a);*p=20; 为什么结果是a=10,*p=20?
编译器优化的结果,编译器在处理 const int a = 10;
这句时 没有为a分配内存赋值,而是在加入了符号表,后续引用a时有些类似#define a 10这样处理了
int * p = (int *)(&a);这句则 配*p被强制赋值,所以指针有效指向了某个地址,所以出现了上述结果
F: const在成员函数后边
由于电脑崩溃了, 所以那个网页的内容找不到了, 没记载, 以后补上
但总体想表达的意思呢, 就是, 成员函数后边跟上const以后, 里面不能有修改的内容
参考链接: https://www.cnblogs.com/Forever-Kenlen-Ja/p/3776991.html
c++ const 用法总结的更多相关文章
- c++ const用法小结
const用法 1,定义全局变量的内存分配问题 #define Pi_1 3.14 //使用#define宏 const double Pi_2 = 3.14 //使用const ...
- const用法
一.const作用 二.const用法 1.修饰一般常量 修饰符const可以用在类型说明符前,也可以用在类型说明符后. 例如: ; ; 2.修饰常数组 修饰符const可以用在类型说明符前,也 ...
- 【转】话说C语言const用法
原文:话说C语言const用法 const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修 ...
- static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符
一.static 与单例模式 单例模式也就是简单的一种设计模式,它需要: 保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝 C++ Code 1 2 3 4 5 6 7 8 9 10 11 ...
- const用法详解(转)
http://www.cnblogs.com/StudyRush/archive/2010/10/06/1844690.html 面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也 ...
- C++之常指针,指针常量,函数指针,const用法总结
1.const char *p,char const *p,char * const p 对于C++而言,没有const * 修饰符,所以,const只可以修饰类型或者变量名.因而const char ...
- C++的那些事:const用法面面观
一.const是什么 在 C/C++ 语言中,const关键字是一种修饰符.所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实际代码.就 con ...
- 【三支火把】---C语言const用法总结
C语言关键字const相信对于不少C语言新手是既陌生又熟悉的,好像经常见,但是却不知道为何用,怎么用?学习至此,总结一下const的用法,使用程序来帮助你理解该关键字,希望能帮到像我一样的新手. 我看 ...
- typedef,static,const用法
一.typedef主要功能是定义一个已存在类型的别名,但是和宏并存 宏与typedef区别 1.宏定义只是简单的字符串替换 2.typedef定义的类型是类型的别名,typedef后面是一个整体声明, ...
- C++中const用法详解
本文主要内容来自CSDN论坛: http://bbs.csdn.net/topics/310007610 我做了下面几点补充. 补充: 1. 用const声明全局变量时, 该变量仅在本文件内可见, 类 ...
随机推荐
- 源码安装mysql5.6x启动报错:[ERROR] Can't find messagefile '/data/mysqldata/3306/english/errmsg.sys'
:: mysqld_safe Starting mysqld daemon with databases from /data/mysqldata//data -- :: [Warning] The ...
- FFmpeg编译:jni not found 的问题
进入Android\Sdk\ndk-bundle\platforms\android-xx\arch-arm\usr目录查看发现与Google官方下载的NDK相比缺少include目录 此目录下包含各 ...
- lua 工具类(一)
-- -- Author: My Name -- Date: 2013-12-16 18:52:11 -- csv解析 -- -- 去掉字符串左空白 local function trim_left( ...
- 关于 Nginx upstream keepalive 的说明
模块是 HttpUpstreamModule,配置的一个例子: [shell]upstream http_backend { server 127.0.0.1:8080; keepalive 1 ...
- 数据加密 - TDE透明数据加密原理
首先需要确定你需要加密的列,Oracle 10g数据库将为包含加密列的表创建一个私密的安全加密密钥(表秘钥), 然后采用你指定的加密算法(AES或3DES)加密指定列的明文数据.此时,保护表的加密密钥 ...
- [Windows Azure] Building the web role for the Windows Azure Email Service application - 3 of 5
Building the web role for the Windows Azure Email Service application - 3 of 5. This is the third tu ...
- sessionStorage 、localStorage、cookie
特性 cookie localStorage sessionStorage 存储 浏览器端,同源限制 浏览器端,同源限制 浏览器端,同源限制 容量 <=4K 5 ...
- 每日英语:A Buying Guide to Air-Pollution Masks
Blue skies were finally visible in the capital on Thursday after the region suffered fromseven strai ...
- JavaScript 模块化简述
JavaScript 模块化简述 前言 关于模块化,最直接的表现就是我们写的 require 和 import 关键字,如果查阅相关资料,就一定会遇到 CommonJS .CMD AMD 这些名词,以 ...
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
使用 CocoaPods 给微信集成 SDK 打印收发消息 推荐序 本文介绍的是一套逆向工具,可以在非越狱手机上给任意应用增加插件.在文末的示例中,作者拿微信举例,展示出在微信中打印收发消息的功能. ...