一:数组的作用:
我中午吃了饭就开始学数组了!嘿嘿!我中午吃的“串串香”。这是一种成都很常见的小吃!不过大多数人选择晚上去吃。“串串香”是一根竹签上穿着几个同类型的食物,比如,穿着5个牛肉丁,穿着4个土豆,等等。然后放在有特制香料的锅里煮着吃。很好的吃的!当我学习到数组的时候,我突然感觉数组就是“串串香”啊!几个土豆串在1根竹签上,这样我就可以说,我要这串土豆!然后我就不用说,我要这个土豆,还有这一个土豆,还有这一个。这样的话!我就不用声明那么多次了。直接说一串就好了。呵呵!
二:数组的定义:
类型说明符 数组名[元素个数]
土豆 串串香A[100个]
三:数组的特性
每个土豆都是连续的串在竹签上的。而且你吃的1个土豆有个记号(下标)0、吃的第二个土豆记好(下标)是1,然后依次下去了!为什么第1个土豆下标要用0呢,是因为在数组寻址的时候数组的名字是数组的首地址!
数组名做为函数参数的时候,传递过去的是这个数组的4字节首地址,所以数组名传参时候的副本只记下4字节首地址即可。因为传递的是地址,所以可以修改原数组的值!例如:
void change(int x[])
{
int temp = x[0];
x[0] = x[1];
x[1] = temp;
printf("数组名的大小为:%d\n", sizeof(x));
}
int main(void)
{
int a[2] = {11, 22};
printf("交换前的数组元素为:%d\t%d\n", a[0],a[1]);
change(a);
printf("交换后的数组元素为:%d\t%d\n", a[0],a[1]);
printf("数组名的大小为:%d\n", sizeof(a));
return (0);
}
/**********************************************
输出结果为:交换前的数组元素为:11 22
数组名的大小为:4
交换后的数组元素为:22 11
数组名的大小为:8
***********************************************/
四:数组的注意点:
1:[]括号内的值一定要是个固定的,因为老板(编译器)不知道你要多少个土豆1串的。她就知道怎么给你记账啊!(我暂时这样理解啦!,可能以后会觉得现在的理解是错误的!嘿嘿!);
2:吃(引用)土豆的时候只能1个1个的吃,不能你说我要吃这一串。
3:C语言数组可以越界访问!也就是说,当一串土豆只有5个时候,你可以吃6个,第6个你就吃的空气或者其他的什么鬼东西,但是你可以想象成吃的是土豆,呵呵!比如:
五:数组的寻址公式:
a[n] = a + sizeof(type) * n
a[n]:你所要寻址的数组元素
a:数组首地址
sizeof(type):元素的大小
n:数组下标
六:二维数组:
二维数组和一维数组是一样的,只是二维数组的每个元素是一个一维数组。在内存中感觉都是一根竹签上的,就相当于把两串“串串香”首尾连接成一串,嘿嘿!
花了5个小时学习数组终于结束了。我去玩吉他了,你们喜欢玩的吗?玩一会了继续加油!争取1W小时内学会写程序(其实我真真切切是一个刚学几天编程的孩子,大家的误解我想应该是大家当时没有选择好学习资料吧。“没有目的性的学习”也许才会更加的让人集中精力探索事物的本质,因为我觉得好多思维需要在快乐的状态中才能完成!一旦有欲望了!思维上也就局限了。至少在音乐上是这样的)!