指针加法类型

在加法运算中,如果其中一个操作数是指向对象数组的指针,则另一个操作数必须是整型。 结果为与原始指针类型相同的指针和指向另一个数组元素的指针。 以下代码片段阐述了此概念:

short IntArray[10]; // Objects of type short occupy 2 bytes
short *pIntArray = IntArray;

for( int i = 0; i < 10; ++i )
{
    *pIntArray = i;
    cout << *pIntArray << "\n";
    pIntArray = pIntArray + 1;
}

虽然将整数值 1 添加到 pIntArray,但这并不表示“将 1 添加到该地址”,而是指“调整指针使其指向数组中的下一个对象”,而该对象恰好是在 2 字节(或者 sizeof( int ))之外。

备注

在 C++ 程序中很少找到 pIntArray = pIntArray + 1 形式的代码;若要实现递增,以下形式更可取:pIntArray++ 或 pIntArray += 1。

请参见

参考

使用二元运算符的表达式