`
guhanjie
  • 浏览: 300494 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C和C++中Const 修饰指针个人诀窍--就近原则

 
阅读更多
C、C++中Const修饰指针时总是记不住到底作用的是指针还是指针指向的变量内容:

最近总结了一个绝招,可以绝对理清楚!那就是“就近原则
所谓就近原则,意思就是const靠哪个近,就作用在那个上面!
比如:const靠int类型关键字近,那就是说修饰的是整形变量;
const靠指针变量名近,那就是说修饰该指针,说明它不是指针变量,而是指针常量;
但是有一个问题:既然说到是const修饰指针,那就一定有*,比如char const * pContent; 那这个const在*和变量名之间,到底靠谁近呢?
这里要解释说明的是:*不算,const靠谁近指的是类型(如int、char等)和变量名(如这里的pContent),不要算*,因此这里const当然靠char近咯,所以pContent是一个指向字符常量的指针

有了这一条就近原则,const问题迎刃而解!

1) const在前面
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可变
const (char *) pContent; //pContent是const,*pContent可变
char* const pContent; //pContent是const,*pContent可变
const char* const pContent; //pContent和*pContent都是const



2) const在后面,与上面的声明对等
int const nValue; // nValue是const
char const * pContent;// *pContent是const, pContent可变
(char *) const pContent;//pContent是const, *pContent可变
char* const pContent;// pContent是const, *pContent可变
char const* const pContent;// pContent和*pContent都是const


=================================================================================
今天(2013年9月17日15:34:10),又学到一个新的方法,我觉得也非常不错:
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。
char * const cp; ( * 读成 pointer to )
cp is a const pointer to char :cp是一个指向字符型的常量指针,指针不能改变;
const char * p;
p is a pointer to const char:cp是一个指向字符型常量的指针,指针指向的值不能随便改变;
char const * p; 同上。
分享到:
评论

相关推荐

    C++中的const限定修饰符

    ### C++中的const限定修饰符 #### 一、引言 在C++编程语言中,`const`关键字是一个非常重要的特性,它可以帮助开发者确保某些数据或对象在其生命周期内的不变性,从而提高代码的安全性和可维护性。本文将详细介绍`...

    C++中const用法全解

    C++ 中 const 用法全解 const 在 C++ 中占有重要作用,属于小兵立大功的...const 是 C++ 中一个非常重要的关键字,它可以用来修饰变量、指针、函数参数和函数返回值等。正确使用 const 可以提高程序的安全性和可读性。

    c++中const关键字使用详解

    C++语言中的const关键字是一个非常重要的修饰符,它的核心作用是声明一个变量为常量,即不可修改。正确地理解和使用const,可以帮助提高程序的健壮性和安全性。本文将详细介绍const关键字在C++中的使用方法。 一、...

    C++中const用法总结

    ### C++中const用法总结 #### 一、引言 `const` 是 C++ 中一个非常重要的关键字,用于声明常量或指定某些实体不可被修改。熟练掌握 `const` 的使用方法对于编写高质量的 C++ 代码至关重要。本文将详细介绍 `const`...

    C++中const使用说明

    在C++编程语言中,`const`关键字是一个非常重要的特性,它用来定义不可修改的变量。`const`的使用能够帮助我们确保代码的稳定性和安全性,同时也能提高编译器的错误检查能力。以下是对`const`在C++中使用的详细说明...

    const与指针的关系

    ### const与指针的关系 #### 一、const与指针的基本分类 ...总之,理解和掌握`const`与指针之间的关系对于编写高效、安全的C/C++程序至关重要。通过本文的分析,希望读者能够更好地理解和运用这些概念。

    C中const和C++中const区别

    C中const和C++中const的区别 C语言中,const关键字并不能把变量变成真正的常量,而只是表示该变量不能被赋值,换句话说,它的值对这个符号来说是只读的,但是并不防止通过程序的内部(或者说外部)的方法来修改这个...

    CONST指针指针

    总之,理解和熟练使用`const`修饰指针是C语言编程中的关键技巧之一。它能帮助开发者编写更加安全、可预测的代码,并且在多人协作的项目中减少错误和误解。熟练掌握`const`在不同情况下的用法,将有助于提升C语言编程...

    C++:浅谈修饰符const

    在C++编程语言中,const是一个非常重要的修饰符,它用于声明一个变量为常量。这个修饰符的主要作用是确保变量的值在程序执行期间不会被改变,以增强程序的可读性和安全性。以下是关于const修饰符的详细知识点: 1. ...

    c/c++语言中const的用法,const 定义变量,指针的用法和不同

    在本文中,我们将详细介绍 C/C++ 语言中 const 的用法,包括 const 定义变量、指针的用法和不同。 首先,让我们来看一个例子: ```c const int a = 10; int *pa = &a; *pa = 20; printf("%d\n", *pa); ``` 在上面的...

    C++/C 面试题 const

    在C++和C编程语言中,`const`关键字是一个非常重要的概念,它涉及到常量、常量指针、指针常量以及常量指针常量等多方面的知识。`const`关键字的主要作用是限制变量的修改,以提高程序的安全性和可读性。下面将详细...

    C++中const关键字详解

    - **指针和对象的区别**: `const`可以用于修饰指针本身(不可变的指针),也可以用于修饰指针所指向的对象(指向不可变对象的指针)。 #### 六、总结 `const`关键字在C++中是一个非常强大的工具,它可以帮助程序员...

    详细分析c++ const 指针与指向const的指针

    C++ 编程语言中,const 指针和指向const的指针是两个容易混淆的概念,但它们有着不同的定义和使用场景。在本文中,我们将详细分析 C++ const 指针和指向const的指针,帮助读者更好地理解和学习这两个概念。 const ...

    C++中const用法总结.doc

    在C++编程语言中,`const`关键字是一个非常重要的元素,用于声明不可变性,确保程序的稳定性和安全性。以下是对C++中`const`用法的详细总结: 1. **const修饰普通变量和指针** 当`const`修饰普通变量时,变量的值...

    c++中const 的各种用法

    ### C++中const的各种用法详解 #### 一、引言 `const`关键字在C++编程语言中扮演着至关重要的角色。它不仅能够帮助程序员更精确地控制代码的行为,还可以提高程序的安全性和效率。本文将详细介绍`const`在C++中的...

    C语言中Const指针变量(常指针)

    值得注意的是,const指针在C++中有着几乎相同的作用和用法,这使得了解const指针在C语言中的应用对于学习C++同样有帮助。 通过上述知识,我们可以了解到,要想灵活运用指针和const关键字,必须彻底理解指针变量本身...

    c++里const用法归纳

    C++中的const关键字是一种非常灵活的语言特性,它可以用来修饰变量、指针、函数参数、返回值、成员函数等多种类型。正确使用const关键字可以大大改善程序的健壮性和可读性。 1. Const常量 Const常量是一种非常有用...

    理解复杂的CC++声明 const, typedef , 函数指针

    理解复杂的C/C++声明 const, typedef, 函数指针 在C/C++编程中,声明是一种定义变量、函数、数组、指针等的方式。 declares 是一种基本的语法结构,用于定义变量、函数、数组、指针等。在本文中,我们将详细介绍...

Global site tag (gtag.js) - Google Analytics