【发布时间】:2019-04-08 00:47:11
【问题描述】:
作为一个 C++ 初学者,我被介绍了指针,我想知道为什么下面的程序不能正常工作:
#include "pch.h"
#include <iostream>
void test(int* variable)
{
variable++;
}
int main()
{
int someNumber = 5;
test(&someNumber);
std::cout << someNumber;
return 0;
}
程序打印 5,据我了解,它应该打印 6。谁能帮帮我吗?
【问题讨论】:
-
因为你是在递增指针,而不是它指向的值。请改用
++*variable;。 -
variable++递增指针,而不是指针指向的内容。请改用(*variable)++。 -
您不是通过引用传递,而是通过指针(按值)。
-
你可能打算写
(*variable)++;,增加指针的值会有所不同。 -
@Matt
*p++与*(p++)相同;它递增p,而不是*p。
标签: c++ function pointers parameters