既是rbegin()指向超尾,为什么for循环中指针p用p++

既然rbegin()指向超尾,为什么for循环中指针p用p++?
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;

int main()
{
     string words[4] = {"abc", "ett", "tyu", "qwe"};
     vector<string> list(4);
     copy(words, words+4, list.begin());

     vector<string>::reverse_iterator p;
     for(p = list.rbegin(); p!=list.rend(); p++)
     {
        cout<<*p<<" ";
     }
     cout<<endl;

    return 0;
}

既然rbegin()与end()都是指向同一个值,是超尾。list.rbegin()应该与list.end()返回相同的值(超尾),返向输出应该是p--才对呀,为什么这个循环用了p++?
------解决方案--------------------
谁告诉你的? rbegin() 是 end() ?
------解决方案--------------------
rbegin()与end()不是指的同一个位置
一个指向最后一个元素,一个指向最后元素的下一个位置
------解决方案--------------------
重载了++操作符,使得++就是--。
------解决方案--------------------
无图无真相啊!
既是rbegin()指向超尾,为什么for循环中指针p用p++