最近看了点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
z这个问题的点在于:指针是有类型的.
*s是一个char类型对的指针,指向字符串abc的首地址,也就是指向a;
s是相当于字符串abc的一个常量,就相当于 你=“xxx”,cout<<"你:"<<endl;
肯定输出的是abc啊,懂了没?
1.叫你好好上课不听。字符串指针就是字符数组的指针,
用首个地址标示整个,通过检测到\0标示结束。因此直接取值就是第一个
2.看字符串的内容当然是整个。
楼主啊,你这不公平,虽然骂了你,可以说说得更好,你这节奏会没有长进的