常量指针和指针常量

转载 2012年03月30日 14:40:54
常量指针,就是指向常量的指针,关键字 const 出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。
指针常量,指针自身是一个常量,关键字 const 出现在 * 右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。

例:
        常量指针: const char* ptr = “hello”
        指针常量: char* const ptr = “hello”

另外常量指针有两种写法:const既可写在类型前,又可写在类型后。如上面的例子,常量指针:char const * ptr = “hello” 也是正确的。


void f1(char* p)
{
   (1)   char s[] = "Gorm";
   (2)   const char* pc = s;   //指向常量
   (3)   pc[3] = 'g';   //错误:pc是指向常量的
   (4)   pc = p;   //ok

   (5)   char *const cp = s;   //常量指针
   (6)   cp[3] = 'a';   //ok
   (7)   cp = p;   //错误:cp是常量指针

   (8)   const char *const cpc = s;   //到const的const指针
   (9)   cpc[3] = 'a';   //错误:cpc指向常量
   (10)   cpc = p;   //错误:cpc本身是常量
}


相关文章推荐

陈宗权 C++01pm常量指针 笔记

  • 2013年07月01日 19:42
  • 887B
  • 下载

学习笔记——关于指向常量指针的解引用的发现

《C++ primer》(5e)第247页中,从const成员函数返回*this这一节里提到,我们将继续添加一个名为display的成员函数负责打印Screen(这里的Screen是一个类)的内容。由...

指针常量与常指针CONST

  • 2010年06月14日 12:43
  • 296B
  • 下载

[荐]字符串与指针常量

【更新说明】2012-3-16 【问题描述】 看一个常见的实例,我们经常进行类似于下例的初始化操作: char *message = "Hello C"; 书本告诉我们上述操作等价于: ch...

字符串常量余字符串指针的认识

字符串常量余字符串指针的认识 最近遇到字符串常量与字符串指针的各种问题,下面一一解决 一 关于他们地址的问题 有一篇文章《c语言中字符数组与字符串指针》写得很好下面贴出来,并且加上我自己的理解 这...

C++ 语法实验室之指针、常量const、字符串和等号初学误区理解

前言: 指针、常量、字符串和等号,这四个东西可以说贯穿你写的每一个Cpp文件,我大约记得我刚学的时候可是在这些东西中载了大跟头,前车之鉴啊,必须用笔记和文章形式好好理一理。 让我们先从最简单一句开...

实验3 this指针、常量和静态成员和友元函数的使用

1、  实验目的和要求: (1)   掌握显式使用this指针的方法 (2)   掌握静态数据成员的意义及使用方法 (3)   掌握常量数据成员和常量成员函数的意义和使用方法 (4)   掌握...
  • dutmail
  • dutmail
  • 2013年05月15日 07:39
  • 1414

"显微镜"下细看字符串常量初始化数组和指针

   先看代码: 1: #include "stdafx.h" 2: #include 3:   4: u...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常量指针和指针常量
举报原因:
原因补充:

(最多只允许输入30个字)