c++中指针需要注意的点

1、指针可以用关系运算符进行比较,如 ==、< 和 >。如果 p1 和 p2 指向两个相关的变量,比如同一个数组中的不同元素,则可对 p1 和 p2 进行大小比较。比较的内容是位置的先后(大小)。

2、指针和数组在很多情况下是可以互换的,然而,指针和数组并不是完全互换的。如下例:

#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
 
   for (int i = 0; i < MAX; i++)
   {
      *var = i;    // 这是正确的语法
      var++;       // 这是不正确的
   }
   return 0;
}

把指针运算符 * 应用到 var 上是完全可以的,但修改 var 的值是非法的。这是因为 var 是一个指向数组开头的常量,不能作为左值。

由于一个数组名对应一个指针常量,只要不改变数组的值,仍然可以用指针形式的表达式。例如,下面是一个有效的语句,把 var[2] 赋值为 500

*(var + 2) = 500;

上面的语句是有效的,且能成功编译,因为 var 未改变。

3、待续。。

posted @ 2019-09-03 20:33  valar、  阅读(427)  评论(0编辑  收藏  举报