打一个关于放十个学校的成绩,算平均值,且把高于平均值的弄出来,不知道怎么改,
cin>>a[10]不能这么写
for (int i = 0; i < 10; i++)
cin >> a[i];
数组可以认为是一系列相同类型连续排列数据的集合,指针是指向一定类型数据的变量。单从定义上看,两者就不同了。参考以下2个说明:
int a[5];
int *b;
这里,可以让以上的指针b指向数组的首地址:
b = &a[0];
但不考虑上述赋值的情况,在编译器编译时,对两者的行为会有什么不同呢?
很显然两者不能简单的互换:
在编译时,对于一个数组,编译器首先指定数组元素的数量,留给数组足够的空间给每个元素使用,而之后才会创建数组名,且这个数组的各个元素的地址都确定下来;
对于一个指针,编译器只为指针本身保留内存空间,而他具体指向的位置还是不确定的。如果之后不给这个指针赋值,那么这个指针就认为是个“野指针”。