签到

05月05日
尚未签到

共有回帖数 0

    忘记过去

    等级:
    有这样一个程序
    #includeiostream
    using namespace std;
    int main()
    {
    char city[11];
    cin.getline(city,10);
    cout"城市名"cityendl;
    }
    其中char city[11]在这个程序中有什么含义?在运行程序的过程中发现[]中的数字只要是大于0的数字对程序的运行和结果都没有影响,而且结果总是一样。
    程序中定义了一个city[11]数组,证明其中有11个元素,为什么下面不能city[0],city[1],一直一个一个输出到city[10],然后分别限制每个数组元素的长度呢?编译的时候总是出现一个错误。求各位大神耐心帮我解答 谢谢啦
    ity[11]表示从city开始之后的11个Byte都是city 的内存空间,其他变量就不会再占用了。
    city[1] 只给city分配了1Byte的内存空间,但是后面的内存空间还是可以访问(读写)的,但是你不知道后面的空间有没有其他变量在使用,如果空闲的,city用了就用了,程序也不会出问题,但如果有其他变量在使用,你把这块内存修改了,结果可想而知,或者你用了这块空间,但是同时有新的变量来使用这块空间,把你的数据修改了,结果又可想而知。
    说这么多,不知道你能不能懂

    楼主 2015-06-27 22:14 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知