我知道在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;
}