跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > C++中const char*、char const*和char * const的区别详解

C++中const char*、char const*和char * const的区别详解

时间:2024-04-03 20:00:31 来源:网络cs 作者:焦糖 栏目:卖家故事 阅读:

标签: 区别 
阅读本书更多章节>>>>

    摘要:在C++中,我们经常会遇到const char*、char const*和char * const这三种指针类型的定义,但是它们之间的区别很容易混淆。本文将详细解释这三种指针类型的区别,并通过示例代码进行说明。

正文:

在C++中,指针是一种非常重要的数据类型,它允许我们间接访问内存中的数据。在指针的定义中,我们常常会遇到const char*、char const*和char * const这三种类型,它们看起来很相似,但实际上有着不同的含义和用法。

const int abc = 12;//abc的值不能在再改变//如下abc = 15;//编译会报错提示abc的左值存在问题


    char* p与const 混用:


   1、const char* p:

    char str[] = "I LOVE CHIAN!";    const char* p;//代表p指向的东西不能通过p来修改(p指向的目标,那个目标中的内容不能通过p来修改);    p = str;    *p = 'Y';//此时这里会编译错误    p++;//地址也可以被改变;    //s虽然不能修改*p,但可以通过其他修改;    //如:    str[0] = 'Y';//这样通过修改str中的内容可以修改*p中指向的内容,即间接修改

2、char const*:  等价于const char*;

用法如上,这里不过多解释

 3、char * const:

    char str[] = "I Love China!";    char* const p = str;*//此时char *const p定义的时候必须初始化。                         //p一旦指向了一个东西之后,就不可以在再指向其他东西了。即p++不可以用了    //事例如下:    p++;//这里会报错p不能再改变;    *p = 'Y';//这里不会报错,指向的内容可以被修改;    //总结:const char*p(char const*p)与char* const区别:      //(1)const char*p(char const*p)指向的内容不能再改变      //     char* const p指向的内容可以再被改变      //(2)const char*p(char const*p)指向的地址可以被改变,即可以p++      //     char* const p指向的地址不能再改变,即不可以p++

4、const char * const p = str 等价于 char const * const p=str


    p的指向不能改变,p指向的内容也不能被改变;

5、 补充:

    int i = 100;    const int& a = i;//代表a的内容不能通过a来修改    i = 500;    a = 1000;//这里不合法    int& b = 31;//错误的    const int& b = 31;//可以编译,分配了一块内存的。后续也不可以给b赋新值

总结:const char*p(char const*p)与char* const区别:


      (1)const char*p(char const*p)指向的内容不能再改变
               char* const p指向的内容可以再被改变


      (2)const char*p(char const*p)指向的地址可以被改变,即可以p++
               char* const p指向的地址不能再改变,即不可以p++

      (3)const char* const p(char const* const p):指向的内容和地址都不能再被改变

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-03/153556.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论