为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是打印str而不是*str

#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
    //在堆中申请100个char类型的内存
    char *str = new char[100];
    //拷贝Hello C++字符串到分配的堆中的内存中
 strcpy(str, "Hello imooc");
    //打印字符串
    cout<<str<<endl;
    //释放内存
 delete []str;
    str=NULL;
 return 0;
}


正在回答

4 回答

C基础,字符串

0 回复 有任何疑惑可以回复我~

没有楼上说的那么复杂,加的话,就是输出数组的第一个元素,也就是H

1 回复 有任何疑惑可以回复我~

为什么要这样做,如果你已经学习过运算符重载的话,就不用往下看了。

运算符<<作为流插入运算,可以像函数重载一样实现不同类型变量的输出,即由 操作系统调用函数operator<<(ostream& out,char *string),该函数定义体中实现了如何把指针指向的字符串正确输出。而你的代码中cout即第一个参数out的实参,str即参数string的实参。

如果还有不解可以上网百度或者查阅相关资料,推荐你读一下《C++大学教程第6版》,外国写的,适合初学者。

0 回复 有任何疑惑可以回复我~

 char *str = new char[100];在这里的意思是定义一个数组str[100],至于为什么通过进一步学习你就懂了。

 strcpy(str, "Hello imooc");也就是给数组第一个数复制为“hello imooc”

    

打印str,意思就是打印数组第一个数"hello imooc"。

还有美女我也是大一的哦,你是哪里人啊,留个联系方式不,哈哈……

0 回复 有任何疑惑可以回复我~
#1

TearsOfDawn

拒撩...
2018-02-22 回复 有任何疑惑可以回复我~
#2

qq_MrAlmost_afgszP 回复 TearsOfDawn

哈哈哈哈哈哈哈 支持你呢
2018-10-03 回复 有任何疑惑可以回复我~
#3

慕桂英8494256

you are wrong
2019-01-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

为什么是打印str而不是*str

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信