zoukankan      html  css  js  c++  java
  • char*和char[]的区别

    通过这边随笔的学习,终于搞清楚为什么在之前两篇随笔"静态内存"和"strcpy函数学习"中遇到的dest传入char*会导致段错误的原因。

    例子:

    #include<stdio.h>
    
    int  main(void)
    {    
        char* str1="string string string string";
        char str2[]="string string string string";
        printf("str1=%s
    ",str1);
        printf("str2=%s
    ",str2);
        str2[0]='p';
        printf("str2=%s
    ",str2);
        str1[0]='p';
        printf("str1=%s
    ",str1);
    
        return 0;
    }

    运行结果:

    str1=string string string string
    str2=string string string string
    str2=ptring string string string
    Segmentation fault (核心已转储)

    从上面例子可以看到:

    1.char*和char[]都可以表示字符串

    2.char[]可读可写,可以修改字符串的内容。char*可读不可写,写入就会导致段错误(具体原因不清楚)

    因此可以解释,当直接对char*类型的指针变量写入数据时,会导致段错误,需要使用char[]

  • 相关阅读:
    tnagios
    python-gearman使用
    yaml
    中国大陆互联网国际出口情况(2015年)
    vsftpd配置
    spoj-ASSIGN-bitDP
    spoj-ANARC05H -dp
    Light oj 1379 -- 最短路
    SPOJ-394-ACODE
    2018年东北农业大学春季校赛
  • 原文地址:https://www.cnblogs.com/jason207489550/p/6663490.html
Copyright © 2011-2022 走看看