[主观题]

关于C£«£« 输出函数cout 与 printf 的区别

我知道在C++中cout  和printf  都能用于输出,但是他俩肯定在输出的方式、细节上有差别的。

我想问 指针,char* p=“abcd”   按我的理解p就是存储地址的变量,输出p就应该是输出存储“abcd”的空间首地址。

用printf则输出的是存储“abcd”的空间首地址(这和我预想的一样),用cout输出p则整个字符数组都输出了,这是为什么?他们两个的输出方式到底有什么差别。以至于输出同一个变量会得到不同的结果?

比如:

   #include<iostream>

#include<stdio.h>

using namespace std;

int main () {

char* p="abcd";

cout<<p<<"                "<<*p;//这里p输出的是abcd完整的字符串,而*p则输出的是第一个字符a。

printf("%x                    %c",p,*p);//这里p则输出的是存储“abcd”的空间首地址,*p则输出第一个字符a。

return 0;

}

参考答案与解析:

相关试题

printf函数被称为()输出函数

[单选题]printf函数被称为()输出函数A . 字符B . 整数C . 格式D . 浮点

  • 查看答案
  • 在printf函数中用来输出十六制无符号的格式字符是 ( )

    [单选题]在printf函数中用来输出十六制无符号的格式字符是 ( )A.d格式符B.x格式符C.u格式符D.o格式符

  • 查看答案
  • 执行下列语句后,输出结果为()。cout.put(‘s’);cout<<‘c’<

    [单选题]执行下列语句后,输出结果为( )。 cout.put(‘s’); cout<<‘c’<<‘a’;A.caB.scaC.sD.a

  • 查看答案
  • 关于printf()函数的返回值叙述正确的是

    [单选题]关于printf()函数的返回值叙述正确的是A.通常是本次调用中输出字符的个数B.通常是输出的第一个数值C.通常返回布尔值真D.通常返回非零值

  • 查看答案
  • 关于printf()函数的返回值叙述正确的是

    [单选题]关于printf()函数的返回值叙述正确的是A.通常是本次调用中输出字符的个数B.通常是输出的第一个数值C.通常返回布尔值真D.通常返回非零值

  • 查看答案
  • cout、cerr和clog是()的对象,cout处理标准输出,cerr和clo

    [单选题]cout、cerr和clog是( )的对象,cout处理标准输出,cerr和clog都处理标准出错信息。A.istreamB.ostreamC.celtD.clog

  • 查看答案
  • 使用printf、putchar、puts函数输出数据,必须先对串行口初始化,初

    [单选题]使用printf、putchar、puts函数输出数据,必须先对串行口初始化,初始化内容之一是写SCON设置串行口工作方式。设串行通信传输格式为8个数据位、1个停止位,1个校验位,则设置SCON的数值为下面的()A . 0xe0;B . 0xc0;C . 0xb0;D . 0xa0。

  • 查看答案
  • 执行下列语句后,输出结果为 cout.put('s'); cout<<'c'<<

    [单选题]执行下列语句后,输出结果为cout.put('s');cout<<'c'<<'a';A.caB.seaC.sD.a

  • 查看答案
  • 执行下列语句后,输出结果为cout. put('s');cout<<,'c'<<

    [单选题]执行下列语句后,输出结果为cout. put('s');cout<<,'c'<<'a';A.caB.scaC.sD.a

  • 查看答案
  • 以下程序的输出结果是 main( ) { int c=35;printf("%d

    [单选题]以下程序的输出结果是main( ){ int c=35;printf("%d/n",c&c);}A.0B.70C.35D.1

  • 查看答案
  • 关于C£«£« 输出函数cout 与 printf 的区别