函数中的指针和引用

时间:2017-12-03 00:30:35

标签: c++ pointers

我的学校作业有问题。我必须编写一些函数,我对ShiftPointerVal有问题,哪个参数是指向int的指针。这是家庭作业中最重要的,我的意思就是这个论点。我有这个问题:错误:左值作为赋值的左操作数。此函数的目标是使指针大一。我不知道如何编写这个函数,所以指向int的指针可以是一个参数。

void ShiftPointerVal (int& pointer)
{
    &pointer = &pointer + 1;
}

void ShiftPointerRef (int *&pointer)
{
    pointer = pointer + 1;
}

void ShiftPointerPointer (int **pointer)
{
    *pointer = *pointer +1;
}

int main ()
{
    int number = 5;
    int* p_number = &number;

    std::cout << "\n----- 4 -----\n";
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n";
    ShiftPointerVal (p_number);
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n";


    std::cout << "\n----- 5 -----\n";
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n";
    ShiftPointerRef (*&p_number);
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n"; 

    std::cout << "\n----- 6 -----\n";
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n";
    ShiftPointerPointer (&p_number);
    std::cout << &number << "\t" << p_number << "\n";
    std::cout << *p_number << "\n";
}

0 个答案:

没有答案