char label[] = "Single";
char *labelPtr;
labelPtr = label;
cout<<labelPtr;;
return 0;上面代码的输出是Single。
我对产出感到困惑。
据我理解,labelPtr应该包含label[0]的地址。所以输出不应该等同于&label[0]吗?
发布于 2014-11-26 12:17:58
cout将char*视为C样式字符串的指针。所以整个C型字符串都是打印出来的。
考虑将之转换为(空*),看看会发生什么。
发布于 2014-11-26 12:17:20
labelPtr = label;在这个标签中,引用char数组的第一个元素。然后让labelptr指向同一个数组。这意味着从现在开始,您可以以使用labelptr的方式使用labelptr。
因此,两者是等同的:-
cout << label;
cout << labelptr;发布于 2014-11-26 12:24:40
因为cout认为参数是char*类型的。字符串的所有内容都打印出来了。
只打印第一个字符时,请尝试使用
cout<<*labelPtr;;这将只打印第一个字符。使用cout<< *(labelPtr+1);;打印第二个字符
https://stackoverflow.com/questions/27148857
复制相似问题