当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 4.12 复习题 第14题 cout打印转换类型后的字符串

C++ Primer Plus 6th 4.12 复习题 第14题 cout打印转换类型后的字符串

更新时间:2019-03-11 09:59:54浏览次数:1+次

C++ Primer Plus复习题4.12 第14题 cout打印转换类型后的字符串

题目:
14.下面的代码是否有效?如果有效,它将打印出什么结果?
cout << (int *) "Home of the jolly bytes";

答案:
是的,它是有效的。表达式“home of the jolly bytes”是一个字符串常量,因此,它将判定为字符串开始地址。cout对象将char地址解释为打印字符串,但类型转换(int*)将地址转换为int指针,然后作为地址被打印。总之,该语句打印字符串的地址,只要int类型足够宽,能够存储该地址。

C++技术网辅导详解解答:
    数据在计算机内部,都是二进制的数据。这数据是什么意义,就看你怎么解释。对于常量字符串来讲,也是存储在计算机内的一段二进制数据,我们看到的是被解释为字符串的样子,此时是字符串常量类型。如果我们要将类型转换为int*类型,那么这段二进制数据就变成int类型的数据串了。只要是正常的int范围内,cout自然是可以打印出来的。答案里讲的也是很清楚了,就补充到这了。