zoukankan      html  css  js  c++  java
  • C 字符串常量和字符串变量定义和区别

    字符串常量

    定义:在一个双引号""内的字符序列或者转义字符序列称为字符串常量

    例如:"HA HA!"  "abc"  " "

    这些字符串常量是不能改变的,如果试图改变指针所指向的内容是错误的

    因为字符串常量是存在静态内存区的,不可以改变的。

    如定义字符串常量:

    char* a="i love you.";

    *a='h';  //试图改变它

    这是错误的。系统显示:

    string.exe 中的 0x00d71398 处未处理的异常: 0xC0000005: 写入位置 0x00d7573c 时发生访问冲突或者报该内存不能为written。

    字符串变量

    在C语言中没有纯粹的c语言字符串变量,可以通过一个字符数组来体现,这样就

    可以对字符数组中的内容进行改变!如上式可改为。

    如定义字符串变量:

     char a[]="i love you.";
     *a='h';

    /**

    *字符串常量
    *程序将会报错,不能改变字符串常量值。

    *修改失败

    **/

    #include <stdio.h>
    #include <stdlib.h>

    void main()
    {

    char *str = "abcdef";
    printf("%s,%p ", str,str);
    *str = 'C'; //修改第三个字符为大写
    printf("%s,%p ", str);

    }

    /**

    *字符串变量
    *程序将改变字符串变量中其中的值。

    *修改成功

    **/

    #include <stdio.h>
    #include <stdlib.h>

    void main()
    {

    char str[] = "abcdef";
    char *p_str = str;
    printf("%s ", p_str);
    *(p_str+2) = 'C'; //修改第三个字符为大写
    printf("%s ", p_str);

    }

    小结:

    字符串常量:不能对值修改。  常量:"abc" 、123、char *str = "abcdef"、" "

    字符串变量:能对值修改 。    变量:char c = "a"、char arr[] = "abc"

  • 相关阅读:
    【[SDOI2016]排列计数】
    newcoder NOIP提高组模拟赛C题——保护
    【[JLOI2014]松鼠的新家】
    【[USACO08NOV]奶牛混合起来Mixed Up Cows】
    【[USACO13NOV]没有找零No Change】
    【[SHOI2009]会场预约】
    【[USACO12FEB]附近的牛Nearby Cows】
    UVA11987 【Almost Union-Find】
    基于递归的BFS(Level-order)
    遍历二叉树
  • 原文地址:https://www.cnblogs.com/chenweichu/p/6512006.html
Copyright © 2011-2022 走看看