zoukankan      html  css  js  c++  java
  • 用数组实现的字符串和用指针实现的字符串

    用数组实现的字符串和用指针实现的字符串。

    1、

    #include <stdio.h>
    
    int main(void)
    {
        char str[] = "abc"; //数组实现的字符串,str为数组名,为指向数组起始元素的指针,相当于“a”的指针。 
        char *ptr = "123"; //指针实现的字符串,ptr为指针,表示指向字符串字面量“123”首个字符的指针,即“1"的指针。 
        
        printf("str:  %s
    ", str);
        printf("ptr:  %s
    ", ptr);
        
        return 0;    
    } 

    001、使用指针实现的字符串比使用数组实现的字符串占用更多的内存空间,因为指针创建的字符串除了字符串字面量占据内存空间外,指针也要占据内存空间。

    002、数组名表示数组起始元素的指针,使用指针创建的字符串,指针变量也表示首个字符的指针,因此行为和数组本身一样,可以依据访问每一个字符。

    2、用数组实现的字符串和用指针实现的字符串的不同点。

    #include <stdio.h>  
    
    int main(void)
    {
        char str[] = "abc";  //用数组实现的字符串
        printf("str = %s
    ", str);
        str = "edf"; //此处编译错误,因为不能使用赋值运算符对数组进行修改,str为数组名。虽然str表示一个元素的指针,也不能修改。
        printf("str = %s
    ", str);
        
        return 0;
    }
    #include <stdio.h>  
    
    int main(void)
    {
        char *ptr = "abc";  //用指针实现的字符串
        printf("ptr = %s
    ", ptr);
        ptr = "def";    // 此处不会编译失败,说明使用指针实现的字符串,指针ptr可以修改为指向其他字符的指针。
        printf("ptr = %s
    ", ptr);
        
        return 0;
    }

    可以为指向字符串字面量(中的字符)的指针赋上指向别的字符串字面量(中的字符)的指针。 赋值后,指针指向新的字符串字面量(中的字符)。

  • 相关阅读:
    Blue的博客
    透明状态栏和沉浸式状态栏
    Html的label和span的区别
    三个石匠的故事
    OpenSSL 生成自定义证书
    github博客配置
    js作用域其二:预解析
    数据分析常用工具总结
    堆排序
    吴裕雄--天生自然 JAVA开发学习: 循环结构
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14829265.html
Copyright © 2011-2022 走看看