Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么该代码会打印“;2“;而不是",;“3”字;?_C++ - Fatal编程技术网

C++ 为什么该代码会打印“;2“;而不是",;“3”字;?

C++ 为什么该代码会打印“;2“;而不是",;“3”字;?,c++,C++,我想写一个函数,获取一个变量作为输入,并将其数量增加一。我编写了以下代码,但它不起作用。我怎样才能解决这个问题 using namespace std; void func(int a) { a+=1; } int main() { int x=2; func(x); cout<<x; }``` 使用名称空间std; void func(int a) { a+=1; } int main() { int x=2; func(x); cout您必须使用

我想写一个函数,获取一个变量作为输入,并将其数量增加一。我编写了以下代码,但它不起作用。我怎样才能解决这个问题

using namespace std;
void func(int a)
{
    a+=1;
}
int main()
{
    int x=2;
    func(x);
    cout<<x;
}```
使用名称空间std;
void func(int a)
{
a+=1;
}
int main()
{
int x=2;
func(x);
cout您必须使用“通过引用调用”方法来更改原始变量的值。下面的代码显示了解决方案

using namespace std;
void func(int* a)
{
    *a+=1;
}
int main()
{
    int x=2;
    func(&x);
    cout<<x;
}
使用名称空间std;
无效函数(int*a)
{
*a+=1;
}
int main()
{
int x=2;
func&x;

cout副本准确地回答了您的问题,但请按照该帖子上的副本链接进行操作,以便更好地理解。您传递的值表示
a
x
的副本。您修改了副本,但不会更改原始副本。您必须使用“通过引用调用”但是,您的代码不显示引用调用。如果显示了,则函数的签名将包含一个引用:
void func(int&a)
c++
中首选使用
void func(int&a)
并使其余代码与原始问题代码相同。您在代码中显示
c
的方式,因为
c
没有通过引用。指针可以指向任何地方,这就是为什么引用优于指针的原因。