新微赢技术网
标题:
不懂我就问 请大家帮忙`~~
[打印本页]
作者:
※为你歌唱※
时间:
2009-11-4 00:21
标题:
不懂我就问 请大家帮忙`~~
#include<iostream.h>
void main(){
const maxlength=6;
char name[maxlength];
cin.getline(name,10);
cout<<name<<endl;
for(int i=0;i<10;i++)
cout<<name[i]<<endl;
cout<<sizeof(name)/sizeof(char)<<endl;
}
为什么虽然已经定义了name为6个char元素的数组,但仍然能容纳10个输入,多出的那几个元素存储在哪里??
作者:
无敌美少女
时间:
2009-11-4 00:21
越界操作, 不安全.. 数组会退化(即隐式转换)成指针, 所以可以在分配的那块线性内存中访问,你定义的数组的内存是该线性内存的子区间.
作者:
玲珑之翼
时间:
2009-11-4 00:21
谢谢解答`~~~
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2