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 *) {....}
  • 相关阅读:
    手机摇一摇代码
    ftp
    .net 设置导航的当前状态
    app 尺寸
    繁简体 互转 js
    静态页分页效果
    判断浏览器
    python列表,元组,字典和字符串之间的相互转换
    uliweb框架数据库操作
    uliweb的模版
  • 原文地址:https://www.cnblogs.com/ransn/p/8034841.html
Copyright © 2011-2022 走看看