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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙明海 中级黑马   /  2015-10-27 22:47  /  1354 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
int main(){
    char a[]="heima";
    char *p="heima";
    printf("%s----%s\n",a,p);
    //(*p)[0]='a';指针定义的字符串在常量池中不能改变
    a[0]='a';
    printf("%s----%s\n",a,p);
    return 0;
}

10 个回复

倒序浏览
好好学习,天天向上
回复 使用道具 举报
简而言之就是c语言字符串定义在唱两曲,不能改变字符串的值
回复 使用道具 举报
jazzforlove 发表于 2015-10-27 22:57
好好学习,天天向上

你说的真好  ......
回复 使用道具 举报
knight_zfh1288 发表于 2015-10-27 23:15
简而言之就是c语言字符串定义在唱两曲,不能改变字符串的值

简单明了  可是没看懂
回复 使用道具 举报
赞 赞 赞..............
回复 使用道具 举报
zyios 中级黑马 2015-10-29 10:57:34
7#
一样似懂非懂
回复 使用道具 举报
好好学习,天天向上
回复 使用道具 举报
C语言定义的字符串是在常量区,给变量赋值‘a’的时候,是把这个变量指向了‘a’的地址,赋值‘b’的时候,是指向了‘b’的地址,是这个意思不?
回复 使用道具 举报
谁在放荡 来自手机 中级黑马 2015-10-29 15:18:37
10#
很正确啊
回复 使用道具 举报
amoshaxiangp 发表于 2015-10-29 13:55
C语言定义的字符串是在常量区,给变量赋值‘a’的时候,是把这个变量指向了‘a’的地址,赋值‘b’的时候, ...

不是  a是字符数组,变量a和字符串都 存储在内存中
  p是指向字符串的指针,这个字符串存在常量池中不能被改变
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马