c++ - 为什么我在这个实现结构的 C++ 程序中会出错?

标签 c++ struct pass-by-reference

为什么我在执行这个程序时会出错? 我在这里找不到任何错误。

#include <iostream>

using namespace std;

void exchange(point& p);

int main()
{
    struct point
    {
        int a, b;
    };

    point one = {1,2};

    exchange(one);
    cout << one.a << " , " << one.b;
    return 0;
}

void exchange(point& p)
{
    int temp;
    p.a = temp;
    p.a = p.b;
    p.b = temp;
}

我在另一个以类似方式实现结构的程序中也遇到了错误。

最佳答案

全局范围内没有符号point,它只定义在main函数内部,不在main外部。

exchange 原型(prototype)中使用符号之前,在全局范围内定义结构。

关于c++ - 为什么我在这个实现结构的 C++ 程序中会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796623/

相关文章:

c - 使用指定的初始值设定项来初始化具有 `char []` 成员的嵌套结构

c# - C# 中的引用类型变量 "ref"有什么用?

c# - 从 C++ DLL 调用 C# 方法/函数(从 C# 使用 "Dllimport"加载)

c++ - OpenGL 绘制图像。图片库

c++ - 尝试生成文件 C++ 时出错

Swift 常量 : Struct or Enum

c - 如何实现对结构的各个字段执行相同操作的函数?

c# - 是否可以将属性作为 "out"或 "ref"参数传递?

c - 为什么在使用动态数据类型时必须返回指针? (即堆栈、列表、队列、动态数组)

c++ - 将逗号分隔的字符串属性写入 HDF5 数据集 C++