A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

251638256

中级黑马

  • 黑马币:260

  • 帖子:69

  • 精华:0

© 251638256 中级黑马   /  2014-4-25 20:45  /  1219 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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指针和数组能定义字符串. 不懂的是什么样的场合使用什么样的字符串定义方式?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 .Drenched 于 2014-4-25 21:02 编辑

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

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

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

使用指针变量更加方便。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
char *p = "Hello";听人说“Hello”是字符串常量了 跟a=1中的1一样是在常量区了 和a[50]="Hello"中的"Hello"是不一样滴。
回复 使用道具 举报
gaoxinglei123 来自手机 中级黑马 2014-4-25 21:51:42
板凳
char *p=定义的就是字符串常量了。无法改变。一般是很少用到的吧
回复 使用道具 举报
定义字符串的两种方式:1、数组,这种方式定义的字符串放在栈中,可以修改,一般用在需要经常该字符串的场合。2、指针,这种方式定义的字符串放在常量区,不能修改(所以楼主 strcat(p,b) 报错了),常用于需要经常使用该字符串又不需要修改该字符串的地方。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马