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的下一号元素
(未完待序....总感觉有好多想说的但说不出来,且等我看看书再写)

浙公网安备 33010602011771号