我也要学C语言-第九章:“串串香”-数组

Posted on 2011-05-25 18:15  dodolook  阅读(2521)  评论(46编辑  收藏  举报

一:数组的作用:

  我中午吃了饭就开始学数组了!嘿嘿!我中午吃的“串串香”。这是一种成都很常见的小吃!不过大多数人选择晚上去吃。“串串香”是一根竹签上穿着几个同类型的食物,比如,穿着5个牛肉丁,穿着4个土豆,等等。然后放在有特制香料的锅里煮着吃。很好的吃的!当我学习到数组的时候,我突然感觉数组就是“串串香”啊!几个土豆串在1根竹签上,这样我就可以说,我要这串土豆!然后我就不用说,我要这个土豆,还有这一个土豆,还有这一个。这样的话!我就不用声明那么多次了。直接说一串就好了。呵呵!

二:数组的定义:

  类型说明符    数组名[元素个数]

    土豆   串串香A[100个]

三:数组的特性

  每个土豆都是连续的串在竹签上的。而且你吃的1个土豆有个记号(下标)0、吃的第二个土豆记好(下标)是1,然后依次下去了!为什么第1个土豆下标要用0呢,是因为在数组寻址的时候数组的名字是数组的首地址

  数组名做为函数参数的时候,传递过去的是这个数组的4字节首地址,所以数组名传参时候的副本只记下4字节首地址即可。因为传递的是地址,所以可以修改原数组的值!例如:

#include <stdio.h>

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小时内学会写程序(其实我真真切切是一个刚学几天编程的孩子,大家的误解我想应该是大家当时没有选择好学习资料吧。“没有目的性的学习”也许才会更加的让人集中精力探索事物的本质,因为我觉得好多思维需要在快乐的状态中才能完成!一旦有欲望了!思维上也就局限了。至少在音乐上是这样的)!