zoukankan      html  css  js  c++  java
  • 常量指针与指针常量的区别

            这个老是容易搞混,以前很清楚,但过一段时间不用,又忘了,因此今天整理成博客,以备以后查询。

    const  char *类型的指针(指向常量的指针),其所指向的内容为常量,是不可以修改的,但其指针值是可以修改的。

     例如   char str[]="hello";      //定义一个字符数组

             const char *pStr=str;  //把地址赋给指针常量

            *pStr='w';//  error

             pStr=“world”;  //right

              pStr被定义为指针常量,即它指向的字符串是常量,不可以修改,但pStr本身为指针,表示一个地址值,可以修改指向其他地址。

    char* const 类型的指针(常量指针),其地址值是一个常量,不可以修改,但其指向的内存值可以修改。

     例如    char str[]="anything";   //定义一个字符数组

               char*const pStr=str;       //把地址赋给常量指针

               *pStr="k";  //right

                pStr="null";  //error

                pStr被定义为常量指针,即它的值,所指向的内存首地址是不可以修改的,但是其所指向的字符串是可以修改的。

               写到这,我又感觉到学好语文多么重要。语文素养高可以帮助我们很多,最直接的是帮助我们理解字面的含义。比如常量指针,和指针常量。首先,常量指针,可以这么理解,常量二字修饰的是指针,即指针(地址)是常量,不可以修改;指针常量,可以这么理解,指针修饰的是常量,即指针所指向的内容不允许修改。

               另外,在传递函数形参时,如果我们不想形参修改我们传递的字符串,可以把形参定义为指针常量,即const char *类型。

               例如  void   fun(const char * pStr){};

             

              

              

               

             

  • 相关阅读:
    买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
    asp.net cookie and session
    leelazero and google colab
    download file by python in google colab
    physical processor, core, logical processor
    通过powershell操作eventlog
    openxml in sql server
    get the page name from url
    How to Execute Page_Load() in Page's Base Class?
    Difference between HttpContext.Request and Request
  • 原文地址:https://www.cnblogs.com/xshang/p/2996347.html
Copyright © 2011-2022 走看看