函数中传递的变量引用不递增 作为C++初学者,我被介绍给指针,我想知道为什么下面的程序不能正常工作:< /P> #include "pch.h" #include <iostream> void test(int* variable) { variable++; } int main() { int someNumber = 5; test(&someNumber); std::cout << someNumber; return 0; } #包括“pch.h” #包括 无效测试(int*变量) { 变量++; } int main() { int someNumber=5; 测试(&someNumber); std::cout
以下是使用两种不同方法完成任务的解决方案函数中传递的变量引用不递增 作为C++初学者,我被介绍给指针,我想知道为什么下面的程序不能正常工作:< /P> #include "pch.h" #include <iostream> void test(int* variable) { variable++; } int main() { int someNumber = 5; test(&someNumber); std::cout << someNumber; return 0; } #包括“pch.h” #包括 无效测试(int*变量) { 变量++; } int main() { int someNumber=5; 测试(&someNumber); std::cout,c++,function,pointers,parameters,C++,Function,Pointers,Parameters,以下是使用两种不同方法完成任务的解决方案 void test(int* variable) { (*variable)++; } void test(int& variable) { variable++; } 这些解决方案中的每一个都将完成您的任务。 要调用第二个函数,请使用test(variable),因为您正在递增指针,而不是它指向的值。请尝试++*variable;。变量+++递增指针,而不是指针指向的值。尝试(*variable)++相反。你不是通过引用传递,
void test(int* variable)
{
(*variable)++;
}
void test(int& variable)
{
variable++;
}
这些解决方案中的每一个都将完成您的任务。
要调用第二个函数,请使用
test(variable)
,因为您正在递增指针,而不是它指向的值。请尝试++*variable;
。变量+++递增指针,而不是指针指向的值。尝试(*variable)++
相反。你不是通过引用传递,而是通过值传递指针。你可能是想写(*变量)+;
增加指针做一些不同的事情。@Matt*p++
与*(p++)
相同;它增加p
,而不是*p
。