采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
pStr2是数组的首地址吗,为什么单纯输出pStr2的话,没有出现十六进制的那个地址呀,老师我的指针的基础有点薄弱,可能问的一些问题比较傻。。。
输出什么要看你怎么解析,你在调试的输出窗口一般可以直接看到地址。指针比较难,但属于CC++重点,把视频反复多看几遍,多动手应该会感觉好很多。
如果是整形变量的话,假如int* pA=&xxx;输出pA的话,是输出的xxx的地址吧,但如果是字符数组,输出的为什么就是整个数组内容了呢
请使用代码表达问题,否则会有歧义。
在输出的时候,会把字符数组转换为字符指针的形式输出,这样其实和其他类型的指针输出是一样的,就可以解释这个问题了。可以看一下cout的构造函数。我理解的比较片面,不知道能否给您带来些参考。
就像这个样子
#include<bits/stdc++.h> using namespace std; int main() { int* pA=NULL; int a=10; pA=&a; cout<<pA<<endl;//整型 char b[]={"hello"}; char* pB=NULL; pB=b; cout<<pB<<endl;//字符数组 return 0; } 输出内容是 0x71fe0c hello
因为你用cout输出,cout很智能。它会尝试用最合适的方式呈现信息。指针显示地址这很正常,而c中字符数组其实就是首地址和一些附加信息,而cout可以正确的解析并显示出来。
谢谢老师!
登录后可查看更多问答,登录/注册
一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维
1.2k 12
1.3k 10
1.2k 9
1.0k 9