zoukankan      html  css  js  c++  java
  • 字符串数组指针

    (1)
        char *a = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc

    a b 都是字符串指针,拷贝的是字符串地址,而不是字符串本身

    (2)

        char a[4] = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc

    数组名代表数组的首地址,即第一个元素的首地址

    (3)

        char a[3] = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc)F��P�

    数组a没有结尾符,所以赋值给b的时候会打印出来乱码

    (4)

        char *a = "abc";
        char b[5];
        
        b = a;
        
        printf("%s
    ", b);

    打印出错:incompatible types when assigning to type ‘char[5]’ from type ‘char *’

    数组名代表第一个元素的地址,可以看成常量,不能被重新赋值

    (5)

        char *a = "abc";
        //char b[5];
        
        //b = a;
        *a = 'b';
        
        printf("%s
    ", a);

    打印出错: “abc”被定义为一个字符串常量,值是不能被改变的,但是可以访问它

    (6)

        char *a = "abc";
        
        printf("%c
    ", *(a+4));

    打印: %     因为这个字符串常量,只被赋值到第三个字节,所以去引用第四个字节是不确定的

  • 相关阅读:
    PHP之项目环境变量设置
    nginx相关服务实践
    模拟器的基本使用
    Redis常见问题汇总
    用OpenResty搭建高性能服务端
    Lua代码规范
    Lua之基础篇
    如何设计一个高性能短链系统?
    通过双 key 来解决缓存并发问题
    Golang常见问题汇总
  • 原文地址:https://www.cnblogs.com/Deanboy/p/7508844.html
Copyright © 2011-2022 走看看