`
jubincn
  • 浏览: 242680 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

C语言中分辨const指针的简单方法

 
阅读更多

在《C专家编程》中看到const的那段,发现尽管以前花时间去研究过这个问题,但现在还是不清楚,因此记录下来我的一些想法,方便以后查阅。


const和指针在一起的声明会出现几种不同的顺序:

const int * num;

int const * num;

int * const num;

其中,1和2的声明都是“指针所指的对象是只读的”,而3指“指针自身是只读的”。


为什么会这样呢?

如果将int拿走,那么1和2的声明其实是一样的,都是const *,而3的声明则是* const。

*操作符是从右向左结合的顺序,那么const *中,const限定的是(*num),(*num)是指针所指向的对象,被限定为只读;而在* const num中const直接限定num,num是指针自身,因此指针被限定为只读。

归根结底,遇到const指针时,将const后面部分用括号括起来,看看是对象还是指针就可分辨了。

分享到:
评论

相关推荐

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

    C语言中的const指针变量是一种特殊的指针,它用于确保指针所指向的值不会被修改。但是,const指针变量的概念经常被混淆,理解其工作原理对于学习C语言非常重要。 首先,我们可以根据const关键字的位置区分两种常...

    C语言CONST的使用

    在C语言中,const是一个非常重要的关键字,它被用于声明一个变量是常量,即其值在初始化之后就不能被改变。常量可以是整型、浮点型、字符型等多种基本数据类型,也可以是复合类型如指针或数组等。使用const关键字...

    C语言-再再论指针

    在《C语言-再再论指针》这篇深入探讨指针的文章中,作者强调了指针在C语言中的核心地位及其对于编写高效代码的重要性。同时,文章也指出了理解和使用指针时常见的难点,特别是指针与数组之间的关系,以及它们如何被...

    关于C语言中类型限定符const的研究.pdf

    例如,对于指向const的指针,不能使用非const指针赋值给它,反之则可以;对于const数据,只能在定义时进行初始化。 在实验和实践的过程中,const限定符还可以帮助编译器执行更好的代码优化,因为它告诉编译器哪些值...

    c语言const的用法程序设计语言.pdf

    根据提供的文件内容,以下是对C语言中const关键字使用方法的详细解读。 首先,const是C语言中的一个限定符,用于声明变量为常量,意味着该变量的值在初始化之后不可以被修改。常量变量在编译时就已经确定了值,对于...

    详解C++中的const关键字及与C语言中const的区别

    C++中的const关键字和C语言中的const关键字虽然在命名上相同,但在功能和使用上存在一些区别。在C++中,const关键字的使用场景更为广泛,且被赋予了一些特殊的含义。本文将详细解析C++中的const关键字,以及它与...

    C语言指针教学难点透析.pdf

    同时,还可以通过实例来展示const修饰符在指针变量中的不同用法,比如修饰指针变量和修饰指针所指向的数据的区别。 总而言之,在C语言教学中,指针的难点主要体现在理解指针与内存地址、指针与数组、以及指针变量的...

    C语言指针教学探讨研究.pdf

    在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。 在教学中,容易混淆的概念有很多。例如,指向常值的指针和指针常值是一个...

    C语言中常用的字符串处理函数

    在C语言中,字符串处理...这些函数是C语言中处理字符串时的基石,掌握它们的正确使用方法对于编写高效、健壮的程序至关重要。在实际应用中,应特别注意避免缓冲区溢出和空指针解引用等问题,确保代码的安全性和可靠性。

    C语言嵌入式系统编程修炼之道-笔记2.pdf

    在C语言嵌入式系统编程中,理解和熟练掌握内存操作、函数指针、数组与动态内存申请、以及const和volatile关键字是非常关键的。下面将详细阐述这些知识点。 内存操作: 在C语言中,程序员可以直接对内存进行操作。...

    C语言须知提问

    通过指针可以方便地访问数组中的元素,这也是C语言中数组操作的基础。 #### 21. 函数的优点 使用函数可以将复杂的程序分解成更小的模块,提高代码的可读性和复用性。此外,函数还可以帮助减少代码冗余,使程序更加...

    C语言初学者入门笔记(教程来源:b站翁恺c语言老师)

    在C语言中,常量可以用`const`关键字定义,常量的命名通常推荐使用全大写字母以区分普通变量。在整数和浮点数混合运算时,整数会被自动转换为浮点数进行计算。整数类型通常使用`int`,而浮点数类型使用`double`。 ...

    const T vs T const By Dan Saks On Embedded Systems Programming

    在嵌入式系统编程中,理解C语言中的`const T`和`T const`是非常重要的。这两个用法都涉及到常量限定符`const`,但它们在类型修饰上的位置不同,导致了不同的语义和使用场景。让我们深入探讨这个主题。 首先,`const...

    C语言常见笔试题及答案

    代码片段中出现了`const *p`和`*const p`两种类型的声明,前者表示指针所指向的数据是常量,不能通过指针修改;后者表示指针本身是常量,即指针地址不可更改。此题意在区分这两种指针类型,强调它们在使用上的不同...

    C语言正则表达式详解 regcomp() regexec() regfree()详解1

    在C语言中,由于标准库并不直接支持正则表达式,程序员需要借助第三方库来实现这一功能。Perl-Compatible Regular Expression(PCRE)库是一个广泛使用的选项,它为C和C++程序员提供了处理正则表达式的能力。在C语言...

Global site tag (gtag.js) - Google Analytics