我不知道C字符串的东西

时间:2014-08-30 00:57:49

标签: c string pointers

关于C字符串的一些问题:

  1. char*char[]都是指针?
  2. 我已经了解了指针,我可以说char*是一个指针,但为什么它会自动成为一个字符串,而不仅仅是一个指向1个字符的char指针;为什么它能保持字符串?
  3. 为什么,与其他指针不同,当您为char*指针指定一个新值时,实际上是在内存中分配新空间来存储新值,与其他指针不同,您只需替换存储在其中的值。指针指向的内存地址?

1 个答案:

答案 0 :(得分:1)

  1. char *s是一个指针,char s[]是一个字符数组。实施例

    char *s = "hello";
    char c[] = "world";
    s = c; //Legal
    c = address of some other string //Illegal
    
  2. char *s不是字符串;它指向一个地址。实施例

    char c[] = "hello";
    char *s = &c[3];
    
  3. 分配指针不会创建内存;你指着记忆。实施例

    char *s = "hello"; 
    

    在此示例中键入" hello"你正在创建特殊的内存来保存字符串"你好"但这与指针无关,指针只指向那个位置。