黑马程序员技术交流社区

标题: C语言字符串使用场合 [打印本页]

作者: 251638256    时间: 2014-4-25 20:45
标题: C语言字符串使用场合
#include <stdio.h>
int main()
{
    char *p = "Hello";
    char a[50] = "Hello",b[50] = "World";
    strcat(a,b);
    strcat(p,b);    //错误
    printf("%s",a);
    return 0;
}

如上,char指针和数组能定义字符串. 不懂的是什么样的场合使用什么样的字符串定义方式?


作者: .Drenched    时间: 2014-4-25 21:00
本帖最后由 .Drenched 于 2014-4-25 21:02 编辑

用字符数组和字符指针变量都可实现字符串的存储和运算。

字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。

字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。

使用指针变量更加方便。

作者: blz01003hm    时间: 2014-4-25 21:02
char *p = "Hello";听人说“Hello”是字符串常量了 跟a=1中的1一样是在常量区了 和a[50]="Hello"中的"Hello"是不一样滴。
作者: gaoxinglei123    时间: 2014-4-25 21:51
char *p=定义的就是字符串常量了。无法改变。一般是很少用到的吧
作者: allen405    时间: 2014-4-25 22:12
定义字符串的两种方式:1、数组,这种方式定义的字符串放在栈中,可以修改,一般用在需要经常该字符串的场合。2、指针,这种方式定义的字符串放在常量区,不能修改(所以楼主 strcat(p,b) 报错了),常用于需要经常使用该字符串又不需要修改该字符串的地方。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2