永发信息网

如何获得字符串的指针地址?

答案:3  悬赏:0  手机版
解决时间 2021-04-07 14:03
char a[5] = "abcd";
cout<<(void *)a<<endl;
cout<<(void *)&a<<endl;
cout<<(void *)&a[0]<<endl;
上面三个语句输出结果是一样的,但是如何才能获得a这个指针变量(好像又不是指针变量?)的地址?
最佳答案
看楼主对数组与指针的概念有些混淆!
char a[5] = "abcd";
这个定义中有两个量,一个是变量,一个是常量
变量是-----a 它是一个数组,有五个元素(或说可存储五个字符,最后一个一定是'\0'),a是数组名,代表一个地址,不能被改变,更不能称a为指针,但可以通过a找到这个数组的位置,对地址中的数据进行操作(这也是称a为变量的原因)。常量是-----"abcd"。上面的定义是:定义一个数组(分配内存空间),将常量值"abcd"存入a中。
这与char *p="abcd";的定义的意义是不同的-----p是指针变量,它指向常量"abcd"所在的地址。
全部回答
int i=(int)&a; cout<<i<<endl; i就是地址了
sizeof是一个获得某个对象变量或数据类型在内存中所占字节的函数. 指针变量的sizeof值与指针所指的对象内容是没有任何关系的,因为同一类型的指针变量所占内存大小都是相等的。 所以 char* pc = "abc"; char* pi="dfewr"; char* ps="erwqrerweqr"; sizeof( pc ); // 结果为4 sizeof( pi ); // 结果为4 sizeof( ps); // 结果为4 如果你要取得一个字符串的长度(不包括结束符\0),应该使用字符串处理函数 strlen int size=strlen(p)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
雨林木风u盘pexp系统安装,gho文件复制到那?
电脑用模拟器玩吃鸡手游需要什么配置以上?
1000x1000是多少亩
练习棍法的话.每天练习一小时,多久有成绩啊?
荔波县玉屏中学地址在什么地方,想过去办事
北宋时期的瓦子是什么意思
深圳市雅意轩艺术品有限公司地址有知道的么?
便秘可以针灸吗
Linux系统什么情况下会产生很大的日志文件
公安机关违反刑事拘留期限怎么办
求教 allyouneed的信是什么意思
Avast和ESET哪个好一点?
用“更――更”造句
岩蛙如何养殖
2017安徽省高考分数633分能上哪个学校
推荐资讯
我申请1张光大银行信用卡,面签时 只带一张信
手机弹出广告然后任务栏就出现了这个一直在下
上银导轨是国产导轨吗?
公司员工告我们没有签合同没有买社保,我们应
有一个钟面,当钟从4:00走到6:00时,时针和分
篮球nbl是多少分钟赛制?
自动离合器到底好不好用
泉泉瓜果店地址在什么地方,想过去办事
前几天一个美女用微信号加我然后说她在云客商
胜利计划生育服务所地址在哪,我要去那里办事
there____ a lot of money on the table 填ar
你们周围真的有美貌而不自知的姑娘么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?