c++ - C++ 动态内存分配(char[] 和 int[])
问题描述
<code>str 是一个指针,为什么不str
用于输入和输出呢?不是*str
。
<code>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;
}
解决方案
char* str = new char[20];
cin>>str;
您将指针传递给一系列字符,cin
因为cin
预计会在指针指向的位置读取多个字符。
int* p = new int[3];
cin>>*p;
您通过引用将单个 int 传递给cin
,因为cin
预计将读取单个 int。没有读取功能可以读取 int 序列,因为 int 序列不是常见的事情。但是,char 序列是一个 c-string 和一个典型的东西。这就是为什么cin
有一个读取 char 指针的重载。
推荐阅读
- python - 如何使用 pandas 识别字符串数据中的浮点数/数字
- rust - 如何从函数返回 actix Web App 实例?
- r - 如何使 Fluent UI Nav 水平折叠
- python - python - 使用 percentrank.inc 等价物
- docker - 在 Docker 守护程序上强制执行 AppArmor 配置文件
- ruby-on-rails - 实例变量未传递到视图
- angular - 在 BehaviorSubject 中添加项目
- javascript - 使用 vuex 和 vue 的表单组件中可重用的下拉字段
- javascript - 我应该如何更新JS中二维数组中节点的ID?
- jquery - Jquery select2如何在搜索时调用自定义函数