C++中的指针与const
刚开始接触C++时,指针和const之间的关系有点混乱,现在总结如下:
一、指向const变量的指针
#include<iostream.h>
void main()
{
const int *p=NULL;
const int a=;
p=&a;
cout<<"*p="<<*p<<endl;
int b=;
p=&b;
cout<<"*p="<<*p<<endl;
//*p=200; 错误,不能通过修改指针来修改指针指向的内容
b=;
cout<<"*p="<<*p<<endl;
}
不能通过修改指针来修改指针指向的内容,但可以修改指针的指向。
另一种形式:
int const *p=NULL;
二、const指针
#include<iostream.h>
void main()
{
int a=;
int b=;
int * const p=&a;
cout<<"*p="<<*p<<endl;
//p=&b; 错误,不能通过修改const指针的指向来修改指针指向的内容
*p=;
cout<<"*p="<<*p<<endl;
}
不能修改指针的指向,但可以通过修改指针来修改指针指向的内容。
不过这样也会报错:
#include<iostream.h>
void main()
{
const int a=;
int b=;
int * const p=&a;
cout<<"*p="<<*p<<endl;
//p=&b; 错误,不能通过修改const指针的指向来修改指针指向的内容
*p=;
cout<<"*p="<<*p<<endl;
}
报错如下:
--------------------Configuration: 01 - Win32 Debug--------------------
Compiling...
01.cpp
E:\Program Files (x86)\20141102\01.cpp(6) : error C2440: 'initializing' : cannot convert from 'const int *' to 'int *const '
Conversion loses qualifiers
Error executing cl.exe.
01.exe - 1 error(s), 0 warning(s)
而指向const变量的指针中不会有这样的问题。
三、指向const变量的const指针
#include<iostream.h>
void main()
{
int a=;
int b=;
const int * const p=&a;
cout<<"*p="<<*p<<endl;
//p=&b; 错误,不能通过修改const指针的指向来修改指针指向的内容
//*p=200; 错误,不能通过修改指针来修改指针指向的内容
}
不能通过修改指针来修改指针指向的内容,也不可以修改指针的指向。
估计以后我都没有耐心看,也许那时这都不是事。
C++中的指针与const的更多相关文章
- C++中的指针(*)、引用(&)、const详解(一、定义变量)
一.前言 本人作为一个工作了5年的程序员,程序生涯最初是从c/c++开始的,但是始终不能很熟悉的理解c语言中的指针和c++中的引用,归其原因,一部分自己没有静下心来思考,一部分原因是其自身的复杂性. ...
- c++中this指针的用法
1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将 ...
- ES6中的var let const应如何选择
javascript世界里面的每个人都在说有关ECMAScript 6 (ES6,也称作ES 2015)的话题,对象的巨大变化 ( 类 , super() , 等), 函数 (默认参数等), 以及模块 ...
- 解读 C 语言中的指针
我想对很多学习C语言的新手来说,指针无疑是一个难点.但是,我觉得指针也是C语言特别重要的一个特性.也许,你在除了C和C++以外的编程语言中,很少看到指针.而C++中,也多用引用,而非指针.指针,作为一 ...
- C++中 容易忽视的const 修饰符
C++可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的有点: (1)const常量有数据类型,而宏常量没有数据类型.编译器可以对const进行类型安全检查,而后者只进行 ...
- C++中this指针的用法详解
转自 http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...
- C++中this指针的用法详解(转)
原文地址:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影 ...
- C++ Prime:指针和const
与引用一样,也可以令指针指向常量或非常量,类似于常量引用,指向常量的指针不能用于改变其所指对象的值.要想存放常量对象的地址,只能使用指向常量的指针: const double pi = 3.14; / ...
- C++中this指针的使用方法.
this指针仅仅能在一个类的成员函数中调用,它表示当前对象的地址.以下是一个样例: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 thi ...
随机推荐
- windows下redis 开机自启动
1,在redis的目录下执行(执行后就作为windows服务了) redis-server --service-install redis.windows.conf 2,安装好后需要手动启动redis ...
- ubuntu vim 7.4 编译安装
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4137402.html 1.到官网 http://www.vim.org/download.p ...
- wamp Server2.5 配置 自定义目录
煎熬了两天终于找到了方法!!! 前提先改成中文 右键"W"图表-> Language -> chinese; 成功改为中文. 自定义目录步骤: 一.添加一个Alias ...
- 爬虫学习之基于Scrapy的网络爬虫
###概述 在上一篇文章<爬虫学习之一个简单的网络爬虫>中我们对爬虫的概念有了一个初步的认识,并且通过Python的一些第三方库很方便的提取了我们想要的内容,但是通常面对工作当作复杂的需求 ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
- ubuntu 下配置Python wxWidgets (复制自官方网站)
全系统英文官网操作地址:http://wxpython.org/download.php Ubuntu 英文操作地址:http://wiki.wxpython.org/InstallingOnUbun ...
- N皇后摆放问题
Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种 ...
- 编译andriod源码出错:java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported
问题:java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported update-java-alte ...
- ionic修改loading背景色
.loading{ background-color: #387ef5 !important; } 只需要在自定义css文件中设置即可
- springmvc 数据对象回绑
springmvc中,由页面 post到 controller,对象可以在form里面设置modelAttribute达到回绑的目的. 但是如果对象里面有复杂的非String,int的对象,则要在co ...