黑马程序员技术交流社区

标题: 指针与字符串 [打印本页]

作者: 孙明海    时间: 2015-10-27 22:47
标题: 指针与字符串
#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;
}
作者: jazzforlove    时间: 2015-10-27 22:57
好好学习,天天向上
作者: knight_zfh1288    时间: 2015-10-27 23:15
简而言之就是c语言字符串定义在唱两曲,不能改变字符串的值
作者: 孙明海    时间: 2015-10-28 21:14
jazzforlove 发表于 2015-10-27 22:57
好好学习,天天向上

你说的真好  ......
作者: 孙明海    时间: 2015-10-28 21:15
knight_zfh1288 发表于 2015-10-27 23:15
简而言之就是c语言字符串定义在唱两曲,不能改变字符串的值

简单明了  可是没看懂
作者: 529548466    时间: 2015-10-28 21:37
赞 赞 赞..............
作者: zyios    时间: 2015-10-29 10:57
一样似懂非懂
作者: 维维轩    时间: 2015-10-29 13:34
好好学习,天天向上
作者: amoshaxiangp    时间: 2015-10-29 13:55
C语言定义的字符串是在常量区,给变量赋值‘a’的时候,是把这个变量指向了‘a’的地址,赋值‘b’的时候,是指向了‘b’的地址,是这个意思不?
作者: 谁在放荡    时间: 2015-10-29 15:18
很正确啊
作者: 孙明海    时间: 2015-10-29 22:01
amoshaxiangp 发表于 2015-10-29 13:55
C语言定义的字符串是在常量区,给变量赋值‘a’的时候,是把这个变量指向了‘a’的地址,赋值‘b’的时候, ...

不是  a是字符数组,变量a和字符串都 存储在内存中
  p是指向字符串的指针,这个字符串存在常量池中不能被改变




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