我知道在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函数被称为()输出函数A . 字符B . 整数C . 格式D . 浮点
[单选题]在printf函数中用来输出十六制无符号的格式字符是 ( )A.d格式符B.x格式符C.u格式符D.o格式符
[单选题]执行下列语句后,输出结果为( )。 cout.put(‘s’); cout<<‘c’<<‘a’;A.caB.scaC.sD.a
[单选题]关于printf()函数的返回值叙述正确的是A.通常是本次调用中输出字符的个数B.通常是输出的第一个数值C.通常返回布尔值真D.通常返回非零值
[单选题]关于printf()函数的返回值叙述正确的是A.通常是本次调用中输出字符的个数B.通常是输出的第一个数值C.通常返回布尔值真D.通常返回非零值
[单选题]cout、cerr和clog是( )的对象,cout处理标准输出,cerr和clog都处理标准出错信息。A.istreamB.ostreamC.celtD.clog
[单选题]使用printf、putchar、puts函数输出数据,必须先对串行口初始化,初始化内容之一是写SCON设置串行口工作方式。设串行通信传输格式为8个数据位、1个停止位,1个校验位,则设置SCON的数值为下面的()A . 0xe0;B . 0xc0;C . 0xb0;D . 0xa0。
[单选题]执行下列语句后,输出结果为cout.put('s');cout<<'c'<<'a';A.caB.seaC.sD.a
[单选题]执行下列语句后,输出结果为cout. put('s');cout<<,'c'<<'a';A.caB.scaC.sD.a
[单选题]以下程序的输出结果是main( ){ int c=35;printf("%d/n",c&c);}A.0B.70C.35D.1