| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:字符串变量首地址问题
只看楼主 加入收藏
慢慢行走
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-6-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
字符串变量首地址问题
程序代码:
#include<iostream>
#include<string>
#include<cstdlib>

using namespace std;
int main()
{
    string a = "long";
    cout << &a << endl;
    cout << (void*)&a[0];

    system("pause");
    return 0;
}

输出结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

         
问题:1.a与a[0]的地址不是应该是一样的么,为啥输出的结果不一样?(难道我输出&a,是指地址的地址么)
      2.为什么&a与&a[0]的地址总是相差4?(运行很多遍都是相差4)
搜索更多相关主题的帖子: 字符串 
2015-06-29 15:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
不是问过一遍了吗  怎么还问呢

DO IT YOURSELF !
2015-06-29 15:58
慢慢行走
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-6-28
收藏
得分:0 
回复 2楼 wp231957
之前发错版块了
2015-06-29 16:13
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
管他发哪个版块了  会了就行了

DO IT YOURSELF !
2015-06-29 16:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
会了?是那样的么?

授人以渔,不授人以鱼。
2015-06-29 19:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
std::string是一个容器对象,不是什么C數組。谁告诉你这个对象的地址等于内里某个字段的入口地址的?地址不同才正常,相同了那才怪。不要学了C就想当然套到C++上面去,认认真真看C++的书,看清楚概念和原理,当什么也不知道地重新学才是明智的,想当然只会是魔障。

[ 本帖最后由 TonyDeng 于 2015-7-2 12:23 编辑 ]

授人以渔,不授人以鱼。
2015-07-02 12:20
夏如风
Rank: 2
等 级:论坛游民
威 望:2
帖 子:10
专家分:15
注 册:2015-6-29
收藏
得分:0 
1.虽然字符串很像数组,但字符串中的某个字符的地址是表示不出来的,它是一体的,而数组中的每个数的地址能详细的表现出来,所以a与a[0]是不同类型的数,编译器就会给它们分配不同的空间,所以输出的地址也就不一样。
2.long含四个字符,每个字符占一个字节。
2015-07-04 17:43
快速回复:字符串变量首地址问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017966 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved