"> ">

假定有“char * p="Hello";”,若要输出这个字符串的地址值正确的写法为()

假定有“char * p="Hello";”,若要输出这个字符串的地址值正确的写法为()


A、

cout<<*p;


B、

cout<<p;


C、

cout<<&p;


D、

cout<<(void*)p;


【正确答案】:D
【题目解析】:

char* 是声明一个字符类型的指针。这个指针指向的地址上只能存放字符类型的值。
由于C++标准库中I/O类对<<操作符重载,因此在遇到字符型指针时,会将其当作字符串名来处理,输出指针所指的字符串。既然这样,那么我们就别让它知道那是字符型指针,所以得用到强制类型转换,把char的指针转换为无返回值指针类型,即cout<<(void *)P,故选D。
A输出的是H;B输出的是hello;C输出的是指针的地址。


Top