zoukankan      html  css  js  c++  java
  • C 语言中char* 和const char*的区别

    const char *p = "123";

    p[1] = '3'; // 会报错
    p = "456"; // 不会报错

    const char * 只是说指针指向的内容不可变,但指针本身可以再赋值

    假设你的程序是
    char * findArg(char *s) {
    return s;
    }

    这个时候,你如果传const char *进去,那么好一些的编译器,会知道,你传回的函数返回值,也是const char *,也就是指针指向的内容不可写。

    所以如果你传进去的是const char *,最好还是把 char *name写成const char *name,因为char *name可以对指针指向的内容进行修改。

    用强制转换当然也可以,但是
    const char *name2 = "123";
    char *name = (char *)name2;
    如果你对name指向的内容进行改变,如 name[2] = '4';
    "123"是常量,对常量进行修改,你的程序就会发生不可预知的错误

    char* findArg(char *){.....}
    如果你这个函数,对传入的参数,不会对指针指向的内容进行修改,最好写成 char * findArg(const char *) {....}
    或 const char * findArg(const char *) {....}
  • 相关阅读:
    Fiddler界面详解
    Windows平台下Java,tomcat安装与环境配置
    为什么要装Tomcat?
    实例五租房子
    实例四投票
    易犯的PHP小错误及相应分析
    MYSQL数据库错误代码提示汇总
    php mysql_insert_id()
    实例三搜索
    实例二增删改查
  • 原文地址:https://www.cnblogs.com/ransn/p/8034841.html
Copyright © 2011-2022 走看看