指针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]的地址,自减同理。
需要注意的是。当指针到阵列的最后一个元素,既然这样,那么添加操作时,如果数组越界。因为地址指向不明,到底发生了什么也未可知。
时间: 2024-11-07 12:52:22