石巴子价格:c++中的一个小问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 05:46:42
# include<iostream>
using namespace std;
int main()
{
char a[100000];
cin>>a;
cout<<a[3]<<a[4]<<a[5]<<endl;
return 0;
}
这是一个给char型数组赋值的程序,并输出其中3个值,如果没a[5]没赋上值,则不显示。我想问两个问题(1)数组的默认值是多少(int和char)
(2)为什么把上面的char改成int,则程序编译不过,显示如下错误:

error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int [100000]' (or there is no acceptable conversion)
Error executing cl.exe.
望详细解答。谢谢!

默认值随机,有些机子是0,有些则不是
因为char数组可以cin>>a就代表一次性赋一个字符串给a 然后a[i]就是第i个字符,
int数组只能一个一个的赋值不能一口吃 cin>>a[i]

1)数组在没有初始化之前,里面的内容是随机的。
2)这个错误意思是,>>操作右边的对象,不能是一个整型数组。
原因是这种操作在>>没有定义过.你的数组是不是太大了?

(1) int 为 0,char 为 null;
(2) a 不是一个变量,而是一个地址。你改成 cin >> a[1] 试试看。