`
fp_moon
  • 浏览: 985884 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

指针常量与常量指针的区别

阅读更多

指针常量与常量指针的区别:

 

type   *const   pt;//定义了一个指针常量
不能修改pt的指向,但可以修改指向里面的数据。
const   type*   pt;//定义了一个指向常量的指针
可以修改pt的指向,但不可以修改指向里面的数据

还有一种就是指向常量的指针常量了
const   type   *const   pt;
既不能修改pt的指向,也不能修改pt指向里面的数据。

***************************************************************

常指针与指针常量的区别?
关键词: 常指针    指针常量                                          

1 常量指针!如 int b, c; int * const a = &b;
表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以

修改指向内存的值,如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。

2 指向常量的指针!如 int b, c; int const *a; a = &b; a = &c;
都可以,唯独它指向的内存不能被修改。如:*a=20;这是违法的!错误!

这就是主要区别!

BTW 还有一个记住他们不同形式的技巧!看const关键字,他后面的不可修改,如int * const a = &b; 后面是a,则说

明a不能修改!
int const * a = &b;后面是*a则说明*a(目标变量)不可被修改!
(a表示指针,*a表示目标变量,改变主要是指能不能通过指针来改变)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在好多书上或MSDN是经常用 const int a=5;
int b=6;
const int *p=&b;
其实 const int* 和int const* 一样,就是常指针 也就是它所指向的数据(在这是int)是常量,它自己的数据类型

是const int*
还有const int *p=&b;是可以的 虽然b不是常量。
但是 const int a=6;
int *p=&a;
会报错,因为它消除了a的const属性 (常变量只能由常量指针指向它)
**********************************************

*******我们可以总结一下********
1. 对于常量(符号常量)和常指针、常引用常对象声明都是一样的
定义格式: const 数据类型 常量名=常量值;
或 数据类型 const 常量名=常量值;

例如:const int a=7; 或 int const a=7;(符号常量)
int b=5;
const int *p=&b; 或 int const *p=&b;(常指针)
const int &m=b;(常引用)
const Point pt; 或 Point const pt; //常对象不能更新
常指针和常引用在功能上有所限制,就是不能通过他们更改其指向的变量的数据(值)

2. 指针常量
定义格式: 数据类型 *const 指针常量=常量值;
如char ch,*const pch=&ch;(我是一步完成的,你也可以分开)
也就是说这个指针本身是个常量,不可改变,即它所指向的地址是固定的。但,ch是可以改变的。

************************************

 

分享到:
评论

相关推荐

    常量指针和指针常量的区分问题

    ### 常量指针与指针常量的区别 - **常量指针(const int *)**:指针所指向的数据不能被改变,但指针本身可以指向其他数据。 - **指针常量(int *const)**:指针所指向的数据可以被改变,但指针本身不能被重新赋值指向...

    C_C++指针常量和常量指针详解

    ### C_C++中的指针常量与常量指针详解 #### 一、定义与基本概念 在C/C++编程语言中,指针是一个非常重要的概念,它允许程序员直接访问和操作内存地址。而在指针的基础上,衍生出了两种特殊的指针类型——**指针...

    四类指针变量区别:指针常量Or常量指针Or常量指针常量Or指针变量.c

    指针常量、常量指针、常量指针常量、指针变量

    《常量指针和指针常量》

    在C/C++编程语言中,理解“常量指针”和“指针常量”的概念至关重要,因为它们涉及到了指针变量的限制和安全性。这两个术语主要与`const`关键字的使用有关,`const`可以用来修饰指针或指针所指向的变量。 **常量...

    C语言中常量指针与指针常量区别浅析

    总之,常量指针与指针常量是C语言中两种重要的指针类型,它们分别限制了指针指向的内容和指针本身是否可变。理解并正确使用这两种类型有助于编写更安全、高效和易于维护的C语言程序。在编程时,根据需求选择合适的...

    指针常量和常量指针(总结)

    ### 指针常量和常量指针详解 #### 一、引言 在C++编程语言中,指针是一种非常重要的数据类型,它能够存储内存地址,并且通过该地址访问内存中的数据。指针的灵活性使得它可以高效地处理各种复杂的任务,但也因此...

    54_常量指针和指针常量的区别1

    在C++编程语言中,`const`关键字被用来声明常量或者只读对象,它可以用于声明常量指针和指针常量,这两者在概念上有着显著的区别。理解这些概念对于编写安全、高效的代码至关重要。 首先,让我们讨论`const`的一些...

    指针常量和常量指针

    本文将从一个新手的角度出发,详细介绍“指针常量”和“常量指针”的概念及其区别,力求简单易懂。 ### 指针常量 **指针常量**(Pointer to constant)是一种特殊的指针类型,其指向的数据不能被修改。也就是说,...

    指针常量与常指针CONST

    此程序是指针常量、常量指针改变对应值方法

    简单总结C++中指针常量与常量指针的区别

    1. 指针常量与常量指针的概念 指针常量是指指针变量本身是常量,即指针的值(内存地址)一旦被赋值后就不能再改变。然而,这个地址所指向的数据是可以修改的。这可以通过声明`数据类型 * const 指针变量`来实现。...

    C语言中的指针常量.pdf

    指针变量与指针常量的主要区别在于,指针变量是可以被赋值的,可以改变它所指向的地址,而指针常量则不能。指针变量的定义通常包含星号`*`,如`int *ptr`,而指针常量没有星号,如`int (*ptr)`表示指向整型的指针...

    0357-极智开发-解读常量指针与指针常量

    0357_极智开发_解读常量指针与指针常量

    好东西C语言中的指针常量

    指针常量和指针变量是C语言中指针的两个主要类型,理解它们的区别和联系对于掌握C语言至关重要。 首先,指针常量,顾名思义,是指其值不能改变的指针。在C语言中,一个变量的地址在程序运行期间是固定的,因此,这...

    函数指针和指针函数,const的用法,指针常量,常量指针的用法

    这里 `chrPtr` 是一个指向字符数组的常量指针,可以通过重新赋值让 `chrPtr` 指向其他地址,但是不能通过 `chrPtr` 来修改它所指向的数据。 ### 示例代码解析 以下面的代码为例: ```c #include int f(int x, ...

    详解C语言中的常量指针和指针常量

    在这篇文章中,我们将解释常量指针,指针常量,const pointer to const(ps:楼主以为这可以翻译成指向常量的常量指针)的区别 常量指针 让我们先来理解什么是常量指针。常量指针是指指针指向的地址是常量。换句话说...

    吕鑫:最博大精深的C语言视频教程 第22天 【第2堂课】常量指针和指针常量(面试题)

    1、介绍枚举变量的应用; 2、讲解常量指针和指针常量的概念和使用方法; 3、对比常量指针和指针常量的区别;

    0706-极智开发-解读C++常量指针和指针常量

    0706_极智开发_解读C++常量指针和指针常量

    C语言中的空指针、空指针常量、NULL & 0.docx

    要检查一个指针变量p是否为空,可以使用比较运算符与空指针常量或另一个已知的空指针进行比较。如: - if (p == 0) - if (p == NULL) - if (!p) - if (p == q) // 假设q是一个同类型的空指针 这些条件语句都...

    C语言中的空指针、空指针常量、NULL & 0.pdf

    空指针(null pointer)是在将空指针常量转换为指针类型后得到的,它保证与任何对象或函数的地址都不相同。这意味着当给指针变量p赋值为0、0L或其他空指针常量时,p就变成了一个空指针。空指针不指向任何实际的内存...

    常量指针和指针常量,函数指针和指针函数的记忆方法

    在C/C++编程语言中,理解常量指针、指针常量、函数指针以及指针函数的概念是非常重要的。这些概念涉及到指针的操作和使用,对于编写高效且安全的代码至关重要。 首先,我们来解释“常量指针”和“指针常量”。在C/...

Global site tag (gtag.js) - Google Analytics