辨析 const指针 和 指向常量的指针

  辨析以下几种指针p的定义。

int tmp = 5;int *p = &tmp;
const int *p = &tmp;
int const* p = &tmp;
int * const p = &tmp;
const int * const p = &tmp;
int const * const p = &tmp;

  根据文献一,可以采用从右往左读的方式区分。

第一个为普通指针,指向普通int变量;

第二个和第三个相同,都是普通指针,指向const int型变量;

第四个是const指针,指向普通int变量;

第五个和第六个相同,都是const指针,指向const int型变量。

 

  实验代码如下:

 1 #include <iostream>
 2 
 3 
 4 void test1() {
 5     int tmp = 5;
 6     int *p = &tmp;
 7     std::cout << "test1:: p value: " << *p << std::endl;
 8     // *p and p are common variables.
 9     *p = 10;  // ok
10     int tmp1 = 9;
11     p = &tmp1;  // ok
12 }
13 
14 void test2() {
15     int tmp = 5;
16     const int *p = &tmp;
17     std::cout << "test2:: p value: " << *p << std::endl;
18     // *p is read-only, p is common variable.
19 //    *p = 10;  // error
20     int tmp1 = 9;
21     p = &tmp1;  // ok
22 }
23 
24 // same with test2
25 void test3() {
26     int tmp = 5;
27     int const* p = &tmp;
28     std::cout << "test3:: p value: " << *p << std::endl;
29     // *p is read-only, p is common variable.
30 //    *p = 10;  // error
31     int tmp1 = 9;
32     p = &tmp1;  // ok
33 }
34 
35 void test4() {
36     int tmp = 5;
37     int * const p = &tmp;
38     std::cout << "test4:: p value: " << *p << std::endl;
39     // p is read-only, *p is common variable.
40     *p = 10;  // ok
41 //    int tmp1 = 9;
42 //    p = &tmp1;  // error
43 }
44 
45 void test5() {
46     const int tmp = 5;
47     const int * const p = &tmp;
48     std::cout << "test5:: p value: " << *p << std::endl;
49     // p is read-only, *p is also read-only.
50 //    *p = 10;  // error
51 //    int tmp1 = 9;
52 //    p = &tmp1;  // error
53 }
54 
55 
56 // same with test5
57 void test6() {
58     const int tmp = 5;
59     int const * const p = &tmp;
60     std::cout << "test6:: p value: " << *p << std::endl;
61     // p is read-only, *p is also read-only.
62 //    *p = 10;  // error
63 //    int tmp1 = 9;
64 //    p = &tmp1;  // error
65 }
66 
67 int main() {
68     std::cout << "Hello, World!" << std::endl;
69     test1();
70     test2();
71     test3();
72     test4();
73     test5();
74     test6();
75     return 0;
76 }

 

References:

(1) https://www.cnblogs.com/bencai/p/8888760.html

转载于:https://www.cnblogs.com/tlz888/p/11350521.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩展极小值—lhMorpEMin

扩展极小值&#xff08;5*5正方形 h100 显示结果二值化&#xff09; 函数&#xff1a;lhMorpEMin 说明&#xff1a;形态学扩展极小值 参数&#xff1a; src 输入图像 dst 输出图像 h 深度或动态范围阈值 se 结构元素 源码&#xff1a; void lhMorpEMin(const IplImage* src…

c++win32项目 如何显示后再删除一个绘图_CAD快速绘图,不可不知的50个经典技巧,看完不迷茫!...

1、文字镜像如何设置转动与不转动&#xff1f;A、在镜像前&#xff0c;输入MIRRTEXT指令B、输入新值0 代表不转动 &#xff1b;输入新值1代表转动C、MIRRTEXT指令完成后&#xff0c;输入MI镜像指令就OK了2、CAD的版本转换&#xff1f;A、CAD高版本可以打开所有低版本的图纸B、C…

[html] 你有使用过template标签吗?说说它的用途有哪些?

[html] 你有使用过template标签吗&#xff1f;说说它的用途有哪些&#xff1f; HTML内容模板&#xff08;<template>&#xff09;元素是一种用于保存客户端内容机制&#xff0c;该内容在加载页面时不会呈现&#xff0c;但随后可以(原文为 maybe)在运行时使用JavaScript实…

用python画统计图表_Python数据科学(九)- 使用Pandas绘制统计图表

作者&#xff1a;许胜利 Python爱好者社区专栏作者博客专栏&#xff1a;许胜利的博客专栏1.信息可视化因为人对图像信息的解析效率比文字更高&#xff0c;所以可视化可以使数据更为直观&#xff0c;便于理解&#xff0c;使决策变得高效&#xff0c;所以信息可视化就显得尤为重要…

PHP添加php-java-brideg模块(ubuntu环境)

1、下载php-java-bridge 下载地址&#xff1a;https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/exploded/JavaBridge.jar/download 2、将JavaBridge.jar上传到linux服务器中。例如/usr/local/src/ 3、修改php.ini文件。用find…

YSlow简介与使用(转)

原文&#xff1a;http://www.huluboke.com/firebug-yslow/ 除了Firebug自带的网络监控功能以外&#xff0c;还有很多Firebug监控插件提供更为详细的监控信息报告&#xff0c;在此介绍其中的佼佼者&#xff0c;YSlow。YSlow的下载地址为&#xff1a;http://developer.yahoo.com/…

安卓手机阅读器_乐应用|安卓手机本地阅读的不二之选

现在属于个人的时间越来越碎片化&#xff0c;因此为了方便&#xff0c;很多人选择在手机上阅读书籍。不同的人&#xff0c;有不同的阅读喜好&#xff0c;所以合适的阅读软件没有最好&#xff0c;只有更好。比如有人喜欢追网络小说&#xff0c;应用中集成在线书库就比较重要&…

[html] 你有使用过blockquote标签吗?说说它的用途有哪些?

[html] 你有使用过blockquote标签吗&#xff1f;说说它的用途有哪些&#xff1f; 用于标记长的引用 浏览器在 blockquote 元素前后添加了换行&#xff0c;并增加了外边距。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷…

莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表

说实在的&#xff0c;在很多中小企业里&#xff0c;风险评价在企业运行过程中&#xff0c;还是一项比较概念化的工作&#xff0c;明确地说就是不被重视&#xff0c;似乎有没有都无所谓。初次接触风险评价&#xff0c;感觉十分陌生&#xff0c;不知道从何入手&#xff0c;什么都…

cmake 判断操作系统平台

转载自 cmake 判断操作系统平台 MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")IF (CMAKE_SYSTEM_NAME MATCHES "Linux")MESSAGE(STATUS "current platform: Linux ") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")MESSAGE(…

android JSON数据解析

JSON作为一种“轻量”的数据结构传递数据&#xff0c;在JS中有广泛的应用Google公司对JSON的解析提供了gson.jar这个包&#xff0c;它不依赖于其他任何JAR包&#xff1b;目前在Android3.0中已经合入了该解析器的功能&#xff0c;但之前的版本是没有的。 findViewById(R.id.pars…

输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...

“与其让毕业生天天愁毕业论文的重复率&#xff0c;不如踏踏实实地搞点创新。”文 | 木兔 编辑 | 小豆6月6日起&#xff0c;陆续有哈尔滨工业大学(以下简称哈工大)的学生在知乎等社交网络上反映&#xff0c;MATLAB软件突然不能用了&#xff0c;明明学校已经购买了全套正版软件&…

python结巴_python结巴(jieba)分词

一、特点1、支持三种分词模式&#xff1a;(1)精确模式&#xff1a;试图将句子最精确的切开&#xff0c;适合文本分析。(2)全模式&#xff1a;把句子中所有可以成词的词语都扫描出来&#xff0c;速度非常快&#xff0c;但是不能解决歧义。(3)搜索引擎模式&#xff1a;在精确模式…

不同操作系统的宏定义区分

转载自 不同操作系统的宏定义区分 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common)#ifdef _WIN64 //define something for Windows (64-bit only)#else //define something for Windows (32-bit only)#endif#elif __APPLE__#include &…

three.js两个点给线条加宽度_一台电视两个房间看?衣柜、客房会隐形?这是什么神奇设计!...

今天介绍的家是一对小夫妻的新房&#xff0c;改造前的问题基本都是常见的槽点&#xff1a;进门过道细窄昏暗&#xff1b;厨卫小而局促&#xff1b;卧室和阳台被分成了4个小隔间&#xff0c;像群租的隔断房。1玄关利用镜面反射&#xff0c;空间视觉扩大一倍。进门的视角&#xf…

python画正方体_python绘制立方体的方法

本文实例为大家分享了python绘制立方体的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下#!/usr/bin/env python# This is (almost) a direct C to Python transliteration of# /Examples/DataManipulation/Cxx/Cube.cxx from the VTK# source distribution, which &q…

[html] 你有使用过time标签吗?说说它的用途有哪些?

[html] 你有使用过time标签吗&#xff1f;说说它的用途有哪些&#xff1f; 首先time标签是h5的新属性&#xff0c;标签定义为公历的时间或日期。 好处是time约束的日期或时间的编码方式满足机器可读的要求。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃…

论文中要用到的SPSS基础分析

大家现在都要写论文的数据分析了……很多同学都一点不会……所以把我知道的跟大家分享一下……下面以PASW18.0为例&#xff0c;也就是SPSS18.0…………什么&#xff1f;不是18.0&#xff0c;好吧……差不多的&#xff0c;凑合着看吧……要不去装个…… ……下面图片看不清的请右…

AutoMapper 9.0的改造

AutoMapper于2019.8.12升级9.0 从此不再支持静态的对象转换 自己琢磨了一下&#xff0c;写了一套扩展 官方链接如下 https://github.com/AutoMapper/AutoMapper/tree/v9.0.0 我做了一下方便使用的简单封装 public static class AutoMapperExtension{public static IServiceColl…

win10电脑插耳机没声音_电脑没有声音是什么原因 教您电脑突然没声音怎么解决...

在日常生活中在使用电脑中经常遇到电脑没声音的小麻烦&#xff0c;有时候选择重装系统也解决不了该问题&#xff0c;其实不必烦恼的&#xff0c;当出现电脑没声音的现象时&#xff0c;我们首先要寻找出电脑没声音是什么原因造成的。然后根据电脑没声音的原因来寻求解决办法。下…