zoukankan      html  css  js  c++  java
  • const char * 和 char *const

    经常看到网上太多不经思考就转载的东西。

    比如:

    什么是指针常量?指针常量即指针类型的常量,常量的值不能改变。

    例:char *const name1="John";

        name1="abc"; //错误,name1是常量,不能修改

    什么是常量指针?常量指针即是指向常量的指针,指针的值可以改变,即指针所指的地址可以改变,指针所指的地址中的内容为常量不能改变,

    例:const char *name2="John";

        char s[]="abc"; name2=s; //正确,name2所指的地址可以改变             

        *name2="1"; //错误,地址中常量的内容不可以改变

      

    注意这边的红字,他的意思是char *const name1="John";

     name1="abc";这个是地址是不能修改的

    但是 name1[0] = 'a';是可以修改的

    但是c语言稍微可以的就知道?

    这个怎么可能修改?

    字符串指针,处于静态变量区,没有用malloc开辟堆空间

     

    正确的做法

    char *const name1= new char10];

    name1[0] = 's';

    不过文中的这句话还是可以的

      记忆诀窍:const指针常量还是常量指针,按照“const”和“指针”出现的先后循序,从前往后读,并且靠近哪一个,哪一个不能变。

    例:char *const name1="John";//从前往后读为“指针 常量”,语句中const靠近 name1,则name1的值不能变  

        const char *name2="John";//从前往后读为“常量 指针”,语句中const靠近 指针,则指针的值不能变 *name2不能变



    我自豪 我是一名软件工程师。
  • 相关阅读:
    【FJOI2014】【偏导+数学】病毒防护带
    脏读、不可重复读 共享锁、悲观锁 和 事务五种隔离级别
    数据库锁机制
    Clgb动态代理
    乐观锁和悲观锁
    Jstl自定义标签
    orcale应用
    Ajax
    AOP
    Git 配置过程
  • 原文地址:https://www.cnblogs.com/pipicfan/p/2750564.html
Copyright © 2011-2022 走看看