str是一个指针,为什么不使用str作为输入和输出?不是*str。
p是一个指针,为什么使用*p作为输入和输出?不是p。
#include<iostream>
using namespace std;
int main()
{
char* str = new char[20];
cin>>str;
cout<<str<<endl;
delete []str;
int* p = new int[3];
cin>>*p;
cout<<*p<<endl;
delete []p;
return 0;
}发布于 2020-08-14 12:54:42
最好重写这个代码片段。
int* p = new int[3];
cin>>*p;
cout<<*p<<endl;
delete []p;喜欢
int* p = new int;
cin>>*p;
cout<<*p<<endl;
delete p;因为只使用了分配的数组中的一个对象,该数组包含三个int类型的对象。
在第一种情况下,您处理的是接受或存储字符串的字符数组。例如,对于字符数组,操作符>>声明如下
template<class charT, class traits>
basic_istream<charT,traits>& operator>>(basic_istream<charT,traits>&,
charT*);也就是说,运算符不仅需要访问数组的第一个字符,还需要使用指针算法访问数组的后续字符。运算符不更改传递的指针。它更改指针所指向的类型字符的对象。
对于int类型的对象,操作符>>声明如下
basic_istream<charT,traits>& operator>>(int& n);通过引用传递一个标量对象就足以使用操作符来更改它。
https://stackoverflow.com/questions/63412908
复制相似问题