LinuxC程序设计基础—数组与指针

数组

        数组的含义:在程序设计中,为了方便处理,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。简单来说,数组具有相同数据类型的若干变量的有序集合,是一种复合类型。
     数组(Array)也是一种复合数据类型,它由一系列相同类型的元素(Element)组成。
        * 注意
                一个数组中,其所有元素的数据类型都是相同的
                数组名书写规则要求符合标识符的书写规定
                数组名不能和其他变量的名字相同
                方括号中常量表达式表示数组元素的个数,下标从0开始计算
                允许一个类型说明中,说明多个数组和多个变量
        数组可分: 一维数组与多维数组
                定义一维数组格式为:
                            数组中元素类别   数组名  [数组中元素个数]={元素0,元素1......元素n};
                   例如  int a[5]={1,2,3,4,5};
                定义多维数组格式为:
                     数组中元素类别  数组名  [数组长度] [数组长度]={{值1,值2},{值1,值2}......{值1,值2}};
           (其中第一个数组长度代表等号后面总共有数组   第二个数组长度代表每组数据里元素的个数)
                    例1  int a[3][2]={{12,52},{23,56},{45,66}};
(不足要求每组数据里元素的个数自动在每组数据元素后补0,不允许前面或者中间省略,如果需要省略手动加0)
                   例2  int a[3][2]={12,52,23,56,45,66};
        以上举的这两个例子在实际使用中都能使用
        概念模型:
                             
        数组a里有3个元素a[0]--a[2],每个元素是一个数组,如a[0]是一个数组,它有2个元素a[0][0],a[0][1],这两个元素是int类型,分别为12,52  。每个数组中不可能有两个类型的数据。
         简单说一下 字符数组 ,字符数组故名思意这个数组可以用来存放字符,形式和数组一样。每个字符串就是一个数组。字符数组也可是一维数组或者多维数组。
                        例    char  [10]={'c','','p','r','o','g','r','a','m'};
                                char  [10]="c program";
         注:数组定义的时候是以一个整体定义的,但是用的时候不能使用一个整体,使用必须拆开数组中的每个元素。例如,数组  int a[8]={1,2,3,4,5,6,7,8,};  使用需用a[0],a[1],a[7]表示,其中[]是数组的标志,[]中的数字表示数组下标,也叫索引。通俗来讲a[0]代表数组中第一个元素,1代表第二个,以此类推。假如有n个元素,最后的一个元素下标为n-1.

指针

        指针一般指向一个函数或一个变量,在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数值。一个指针是一个地址,也是一个常量。然而一个指针的变量却可被赋予不同的指针值,是变量。但是常把指针变量称指针。为了混乱,我们约定,"指针"就是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针是为了通过指针去访问内存单元。

通常定义指针的格式为:

                类型说明符 *指针名=&变量名;

                根据以上公式示范定义:   int i;

                                                      int *a=&i;

        其中  类型说明符表示本指针变量所指向的变量数据类型  *表示这是一个指针变量  &表示取变量名对应的内存地址  &i表示取变量i的地址。

        我们也可定义多个指针变量,每个都要用*号,中间用逗号隔开。  例

                int *p,*q;

         用一个指针给另一个指针赋值时要注意,两个指针必须是同一类型的。如果不是先进行强制类型转换再赋值;

        范题:

                          

        指针类型也可作为函数的参数  作用:将一个变量的地址传送到另一个函数中;

        范题:

                            

        指针数组

                一个变量有一个地址,一个数组有若干个元素,每个数组元素都在内存中占用存储单元,他们都有相应的地址。所谓数组的指针是指数组的其实地址,数组元素的指针是数组元素的地址。

                一个数组由一个连续的一块儿内存单元组成的。数组名就是这块连续内存单元首选地址。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。

                指针变量可以实现本身价值的改变。如p++合法,代表下一个数组元素的地址;而a++是错误的。因为a是数组名,他是数组的首地址,是常量。

                

                定义形式:

                    类型标识符  *数组名[整形常量表达式];

        例如:   int *a[6]={null};

                            

          例题:

                        

                                                                                                    微笑如有不足,请批评指正,谢谢

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值