C++小程序疑问!

474关注730浏览

for(chara[10];cin>>a;)cout<<a<<"";定义了a的长度,为什么实际中结果并不受这个长度限制,几乎输入多长都可以得到正常输出?!无...

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Hailey

    14人对此回答表示赞同

    cin的机制就是这样的,从a数组首地址开始存储,一直到遇到空白符(空格、回车、制表等),然后在最后加上一个'\0'作为结束符,cout也一样,从a首地址开始输出,直到遇到'\0'结束,数组越界的情况编译器是查不出的,因为这是你在输入的时候决定的,但是这样很可能破坏内存单元,造成一些内存泄露等灾难,所以在编程时要考虑到你可能输入的字符串最大长度,以定义字符串的最大长度。
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Sya

    12人对此回答表示赞同

    #include<iostream.h>
    void main()
    {
    char a[40];
    cin.getline(a,10);
    cout<<a<<endl;
    }
    上述程序字符串a的长度是受限制的,如果输入超过9个(最后一个存放'\0'),那么只显示前9个字符
    for(char a[10];cin>>a;)
    cout<<a<
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部