关于const修饰指针的情况,一般分为如下4种情况:

int b =;
const int *a =&b; //情况1
int const *a =&b; //情况2
int* const a =&b; //情况3
const int* const a =&b; //情况4

如何区别呢?
  

如果const 位于星号的左侧,则const 就是用来修饰指针所指向的变量,即指针指向为常量;

如果const 位于星号的右侧,const就是修饰指针本身,即指针本身是常量。

1.情况1和2相同,都是指针所指向的内容为常量,这种情况下不允许对内容进行更改操作。

  例如

int b =;
const int *a =&b; //情况1
*a =; //错误

  但也有别的办法改变*a的值,一个是通过改变b的值,另一个是使a指向别处 a = &c 。

对于情况1和2,可以不进行初始化。因为虽然指针内容是常量,但指针本身不是常量。

2.情况3 为指针本身是常量,不能对指针本身进行更改操作,而指针所指向的内容不是常量。

  因此,定义时必须同时初始化。

3.情况4 为指针本身和指向的内容均为常量。

const修饰指针的更多相关文章

  1. C语言--const修饰指针解析

          这种例子在我们平时编程时可能会很少用,但是在面试时被问的可能性就很大了. 用const修饰指针,常见的情况可以分为四种: 1.const int *p; // p 可变,p 指向的对象不可 ...

  2. const修饰指针+volatile +restrict

    const这块的难点 const修饰指针有以下的几种形式 ,不同的形式 它的意义不一样. 形式1: int a=23: const int *p=&a: a是int型,&a是int * ...

  3. 关于const修饰指针

    const修饰指针,一般分为如下四种情况: int b = 500; const int *a = &b;   //情况1 int const *a = &b //        2 ...

  4. C++ --const修饰指针

    const修饰指针 1.const修饰指针 (常量指针)常量的指针 const int *p = &a; const修饰的是*p(表示内容为常量),不是p(指针) 指针指向的地址可以改,但指针 ...

  5. C++中使用const修饰指针

    在本文中呢,主要讲解四个方面,即:常量数据的与否和常量指针的与否中const如何对指针进行修饰: 1.指向非常量数据的常量指针 对于一个指向非常量数据的常量指针,我们应该清楚的知道,在这我们注重的是指 ...

  6. const修饰指针的三种效果

    当用const进行修饰时,根据const位置的不同有三种不同效果. 判断的标准是:const修饰谁,谁的内容就是不可变的. 1 const int *p = &a; const修饰*p, *p ...

  7. const修饰指针时应注意的问题

    1.指向常量的指针 顾名思义,一个指针指向const对象,则称它为指向常量的指针. ; int* ptr=&a; //错误 const int* ptr=&a; //必须用const来 ...

  8. C++中const修饰基本数据类型、指针、引用、对象

    const修饰基本数据类型 #include <iostream> using namespace std; void main(){ const int a = 1; const cha ...

  9. C++中的const和指针组合

    在C++里,const修饰指针有以下三种情况 (1)指针常量:即指向常量的指针 const  int *p或者int const *p const在*前,,可以这样理解它的功能,因为const在*前, ...

随机推荐

  1. thinkphp隐藏中url的index.php

    在本地进行测试 1.修改apache配置文件将如下代码#去掉 #LoadModule rewrite_module modules/mod_rewrite.so   在index.php 目录下新建文 ...

  2. 解决maven项目将model version改成3.0版本问题

    找到项目目录,找到.setting文件 找到org.eclipse.wst.common.project.facet.core.xml文件 修改如下标签 <installed facet=&qu ...

  3. web打印

    实现方法 引用jquery和,jqprint到您的页面 <script language="javascript" src="jquery-1.4.4.min.js ...

  4. Win8.1系统下搭建IIS8.5+php-5.6运行环境教程

    本文是在window 8.1 的IIS8.5 中搭建php环境 步骤: 1.下载php-5.6程序包 ,官网地址为:http://windows.php.net/download/     注意要下载 ...

  5. HDU 5670 Machine

    Machine Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  6. SqlSever基础 一个条件group by 一列有两个内容,分组并查看每个内容有多少行,并用as起名

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  7. ASP.NET简单登录注册实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  8. uTenux——HelloWord

    由以上几节的学习,我们从这一节开始真正的以实例讲解uTenux\AT91SAM3S4C开发套件的应用.如其他的软件程序开发一样,uTenux\AT91SAM3S的学习我们也要从第一个程序代码-Hell ...

  9. 【leetcode❤python】263. Ugly Number

    class Solution(object):    def isUgly(self, num):        if num<=0:return False        comlist=[2 ...

  10. CSS3弹力球

    如下代码实现方块在限定区域内不停弹跳. <!DOCTYPE html> <html> <head> <style> div { width:100px; ...