• 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不能变



    我自豪 我是一名软件工程师。
  • 相关阅读:
    vue 基础补充
    正则
    vue 指令
    函数式编程FP 初探
    .? ?? es2020
    vue alfont scss
    网络安全靶场通关指南
    Java 程序设计——站内短信系统
    Java 程序设计——登录系统
    动态规划法解找零钱问题
  • 原文地址:https://www.cnblogs.com/pipicfan/p/2750564.html
Copyright © 2020-2023  润新知