鱼C论坛

 找回密码
 立即注册
查看: 3190|回复: 10

新手求助char*

[复制链接]
发表于 2013-11-6 14:30:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
char *str="abc";中 str是一个指针变量,是用来存地址变量的 ,为什么可以把一个字符串赋值给str呢?字符串难道是地址吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-6 14:44:37 | 显示全部楼层
本帖最后由 cyousui 于 2013-11-6 14:47 编辑

字符串“abc”不是地址,是字符串,在这当中是将字符串“abc”的地址直接赋值给str,从反编译可以看出: mov dword ptr [str],offset string "abc"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-6 14:55:35 | 显示全部楼层
学习学习~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-6 14:57:34 | 显示全部楼层
char * str 的意思是:str是一个指针变量,也即 str 这个变量里面存放的是一个地址,这个地址所指向的空间中,存放的是字符串“abc”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-6 14:58:41 | 显示全部楼层
本帖最后由 龙羽 于 2013-11-6 14:59 编辑

你是说“将字符串“abc”的地址直接赋值给str”可是我直接cout<<str;得到的结果不是地址值啊 结果就是abc  这个是为什么呢?那这个指针保存的不是地址变量吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-6 15:00:57 | 显示全部楼层
本帖最后由 龙羽 于 2013-11-6 15:04 编辑
以学为乐 发表于 2013-11-6 14:57
char * str 的意思是:str是一个指针变量,也即 str 这个变量里面存放的是一个地址,这个地址所指向的空间中 ...

哦 明白了 那这个赋值是经过运算符重载的吗?还有点不解 为什么cout<<str;得到的结果是abc,指针变量里存的怎么会是个abc呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-6 15:04:56 | 显示全部楼层
由于C++标准库中I/O类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串。既然这样,那么我们就别让它知道那是字符型指针,所以得用到强制类型转换,不过不是C的那套,我们得用static_cast来实现,把字符串指针转换成无类型指针,这样更规范,如下:
cout<<static_cast<const void *>(str)<<endl;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-6 15:17:43 | 显示全部楼层
cyousui 发表于 2013-11-6 15:04
由于C++标准库中I/O类对

非常感谢(不到十个字不让发啊)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-6 17:18:52 | 显示全部楼层
看看不说话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-6 17:51:31 | 显示全部楼层
指针变量 当然是用来存储指针的
不是存储地址
str是一个char*类型变量 存储char*
"123"
是一个char[4] 在这里会隐式转换为指向数组第一个元素的 指针
数组的元素的数据类型是char 指向第一个元素的指针自然就是char*类型的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-7 09:15:54 | 显示全部楼层
其实,我觉得你应该去理解那个双引号。它有申请了空间,存放的是里边的字符串,并且在字符串尾部加上了‘\0’返回的是一个地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 09:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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