//说真的为什么现在才开始讲数组啊w
P1:数组
数组的一些基础内容在Lec1那里就已经提及,此处用来讲一些其他东西
1 关于数组定义
正如ppt上讲的那样,你不能使用变量来定义数组的大小,但是如果你的数组需要经常更改大小,你可以使用常量来定义数组大小
const int MaxN=10005;
int main(){
int a[MaxN];
return 0;
} //在变量类型前加上const即可定义常量,注意常量的值只能在定义时被赋予
2 数组初始化
当你仅仅定义了数组时,数组内部的数据并未被书如,此时可能有多种情况,例如:数据均为零,随机数据等等情况(随环境的不同而不同)
此时,为了防止出现奇怪的错误,我们需要对数组进行初始化,格式如下
int a[5]={1,2};
//此时数组为{1,2,0,0,0}(在编者的环境下)
一个数组的初始化仅能在定义时被完成,需要注意的是,当数组名后边的方括号内没有数字时,数组的大小等于后边填入的数据数量
3 数组越界
数组在电脑内的储存方式等效于等量的变量,换句话说,你访问数组的时候,假如访问了本来并不存在的元素,就可能会访问到其他的变量,例如当你试图访问拥有10个元素的数组A的第20个元素的时候,可能远在天边的一个变量(例如你用来存放答案的ans)就可能被读取并被操作,从而得到一个让人匪夷所思的结果
4 数组的引用
当我们试图在一个函数中使用数组的时候,我们无法也不能将每个数组中的数单独作为参数输入到函数中,与之相对的,我们使用引用来传递数组,我们可以直接使用数组名来表示对于数组的引用,需注意的是此时函数内和一般状况不同,在内部对数组进行更改同样会改变外部数组的数值
void addone(double a[], int len){
for(int i=0;i<len;i++){
a[i]++;
}
}
void main(){
double a[]={1.0,2.0};
addone(a,2);
printf("%f %f\n",a[0],a[1]);
}
//以上是一个通过引用传递数组的实例
//此时输出的是2和3而非1和2
摆了,说实话数组没什么好讲的