小言C指针

        指针c语言,占据着重要的地位。终场前int、char、double其他类别似。它是一种数据类型,其特殊的原因int等基本类型的变量存储内容,针变量存放的是地址。

内存被划分成很多但愿区域,这些单元所在的”单元号“即为地址,指针的定义方式为:

数据类型  *变量名。

Eg:int  *pNum;

当中。*表示pNum是一个指针型变量。int是指针变量的类型,代表它仅仅能指向int型变量。

指针还有个运算符是”&“,名为:取地址符。故名思义。取地址用的,取的就是变量所在的地址。

如:int  a = 0。pN;

pN = &a;

此时就能够通过指针pN间接操作变量a了。

那如何能操作a的数值呢?这时须要用到取值符“*”,这里的*跟上面的那个*意义不同,上面的*表示这是一个指针变量,而这里*表示取指针变量所指变量的值。

如:int  a,b = 1,*pN;

pN = b;

a = *pN;

此时a的值为1。

指针也能够进行自增或自减运算。因为指针存放的是“单元号”(地址),那当指针自加1后,它指向的就是下一个“单元号”了。

如:int *pN;

int a[3] = {1,2,3};

pN = a;

pN++;

当数组a直接赋值给pN后。pN指向的是数组的首地址,也就是a[0]的地址。当pN++后,pN指向下一个地址,也就是a[1]的地址,自减同理。

需要注意的是。当指针到阵列的最后一个元素,既然这样,那么添加操作时,如果数组越界。因为地址指向不明,到底发生了什么也未可知。

原文地址:https://www.cnblogs.com/lcchuguo/p/4564592.html