VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 887|回复: 2

[原创] 用字符指针与字符串

[复制链接]
97_avatar_middle
在线会员 发表于 2017-8-21 21:02:27 | 显示全部楼层 |阅读模式
观察与思考下列语句:
   char ch;
   char *pc=&ch;
   char *string = “Student”;
  在char ch;和char *pc=&ch;这两个语句中,前一个语句在内存申请了字符类型的存储空间,并以ch;这个标示符命名,后一句,是把这个存储空间的首地址赋给指针变量pc,使pc指向ch这个空间。
但是在char *string = “Student”;这个语句里,string是一个指针变量,而“Student”是一个字符串常量,不是一个内存存储空间。在定义字符指针的时候就给它初始化一个字符串,实际上系统要做的操作是:首先申请在堆空间,然后把Student这个串填入。也就是说,首先建立一个字符串常量的存储空间,再将这个字符串常量的存储空间的首地址赋给字符指针,当然这个放字符串常量“Student”内存空间是没有名字的。所以在char *string = “Student”;
这个语句中,在“Student”背后是一个没有名字的内存存储空间。




上一篇:关于C++中vector数组的首地址问题
下一篇:关于C++中string的一些辅助扩展函数
44_avatar_middle
在线会员 发表于 2017-8-23 09:22:47 | 显示全部楼层
char *string = “Student”;这是常量指针,不能修改其内容。
79_avatar_middle
在线会员 发表于 2017-10-8 21:05:45 | 显示全部楼层
student 并不是在堆中申请的,在数据常量区
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-7-17 13:27

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表