c语言的指针(一)

第0讲  引入

    首先说一个常见的现象,为什么C语言中的数组,其第一个元素下标却是0吗?其实,这就是因为数组的定义就是利用了指针。对于数组a[]来说,a[i]的定义就是  *(a+i),其中的i指的是偏移量,距离它的首元素(或说首地址)的偏移量。第一个元素距离首元素的偏移量当然是0了,这样一来,似乎就说得过去了。但这并不意味着数组等同于指针,它们之间还是有许多区别的,限于本人水平有限,先不讨论这一块内容,以后等看书看到了这里再做讨论。


第1讲  指针的组成与定义

     要定义一个指针,首先要定义一个基类型,我对基类型的理解就是:指针指向的数据类型。就是我要用指针表示哪一类型的数据?指定基类型以后就可以定义了,形式如下

                             int   *p;

    简单地说,其中 p 代指的是地址,也就是存储这个数据的内存地址,当然现在只是定义了一下,还没有实质性地给其分配空间是不能用的。

     定义完了指针就应该给他分配空间了,那么如何分配空间呢?主要有以下几种方法:
        1.用分配空间的那个函数malloc。
        2.运用数组自动为其分配空间
        3.让其指向现有的一个指针

第2讲  指针的运算

     1.*运算:首先对于一个已定义好的指针地址来说,比如 int *n;对于n来说,在其前边加一个*是求值运算,就是根据地址找值,但对于未利用的地址来说,其结果是不可预测的。
     2.++,--运算。对于地址来说++(- -)运算最小的单位是sizeof(elemtype),elemtype指的是数据的类型,比如int,char等。所以对于++来说*(++n)指的是*n的下一号元素
                                                   (未完待序....总感觉有好多想说的但说不出来,且等我看看书再写)

posted @ 2013-12-29 14:02  小俎俎  阅读(255)  评论(0)    收藏  举报