开发手册 欢迎您!
软件开发者资料库

C++ 指针变量的加减及比较

C ++ 指针是一个用数值表示的地址。循环遍历时可以对指针自增或自减,以及比较指针。可以对指针进行四种运算符有:++、--、+、-。

1、指针自增

在程序中使用指针代替数组,因为变量指针可以自增,而数组不能自增,数组可以看成一个指针常量。以便顺序访问数组中的每一个元素。

例如,

#include using namespace std;const int MAX = 3;int main (){   int  var[] = {10, 50, 300};   int  i, *ptr;   /* 指针中的数组地址 */   ptr = var;   for ( i = 0; i < MAX; i++)   {      printf("存储地址:var[%d] = %p\n", i, ptr );      printf("存储值:var[%d] = %d\n", i, *ptr );      /* 指向下一个位置 */      ptr++;   }   return 0;}

2、指针自减

在程序中使用指针循环遍历数组,还可以使用变量指针进行自减。

例如,

#include using namespace std;const int MAX = 3;int main (){   int  var[] = {10, 40, 200};   int  i, *ptr;   /* 指针中最后一个元素的地址 */   ptr = &var[MAX-1];   for ( i = MAX; i > 0; i--)   {      printf("存储地址:var[%d] = %p\n", i-1, ptr );      printf("存储值:var[%d] = %d\n", i-1, *ptr );      /* 指向下一个位置 */      ptr--;   }   return 0;}

3、比较指针

指针变量除了可以参与加减运算,还可以参与比较运算,如 ==<>。当对指针变量进行比较运算时,比较的是指针变量本身的值,也就是数据的地址。如果地址相等,那么两个指针就指向同一份数据,否则就指向不同的数据。

例如,

#include using namespace std;const int MAX = 3;int main (){   int  var[] = {10, 80, 190};   int  i, *ptr;   /* 指针中第一个元素的地址 */   ptr = var;   i = 0;   while ( ptr <= &var[MAX - 1] )   {      printf("存储地址:var[%d] = %p\n", i, ptr );      printf("存储值:var[%d] = %d\n", i, *ptr );      /* 指向下一个位置 */      ptr++;      i++;   }   return 0;}