首页 新闻 会员 周边

C++中char* s的s变量为什么不是地址值而是字符串值?

0
悬赏园豆:50 [已解决问题] 解决于 2017-05-02 10:30

最近看了点C++的指针,感觉指针本身应该是个地址才对,但是发现char* s的s变量输出后却是字符串值,实在是不解?求各路大神不吝赐教,多谢!!

char* s="abc";
int i=1;
int* iPtr=&i;
cout<<"*s:"<<*s<<endl;
cout<<"s:"<<s<<endl;
cout<<"*iPtr:"<<*iPtr<<endl;
cout<<"iPtr:"<<iPtr<<endl;

输出值:

*s:a //为什么是第一个字符值?

s:abc;//为什么不是地址值

*iPtr:1

iPtr:0019FD3C

笨nora的主页 笨nora | 初学一级 | 园豆:71
提问于:2017-04-20 14:32
< >
分享
最佳答案
0

z这个问题的点在于:指针是有类型的.

收获园豆:20
吴瑞祥 | 高人七级 |园豆:29449 | 2017-04-20 14:59
其他回答(2)
0

*s是一个char类型对的指针,指向字符串abc的首地址,也就是指向a;

s是相当于字符串abc的一个常量,就相当于 你=“xxx”,cout<<"你:"<<endl;

肯定输出的是abc啊,懂了没?

收获园豆:15
changxin.chen | 园豆:215 (菜鸟二级) | 2017-04-20 19:30
0

1.叫你好好上课不听。字符串指针就是字符数组的指针,

用首个地址标示整个,通过检测到\0标示结束。因此直接取值就是第一个

 

2.看字符串的内容当然是整个。

收获园豆:15
迅捷网络[来送福利] | 园豆:576 (小虾三级) | 2017-04-20 19:51

楼主啊,你这不公平,虽然骂了你,可以说说得更好,你这节奏会没有长进的

支持(0) 反对(0) 迅捷网络[来送福利] | 园豆:576 (小虾三级) | 2017-12-01 08:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册