C++ Visual Studio 2010 如何在不同函数中使用 char 类型变量

标签 c++ visual-studio-2010 char

我在程序中遇到有关 char 类型变量的问题。 我没有发布代码,因为它太长了,但这大致是我想要做的:

#include ...

char path[100];

int main()
{
    char path[100] = "C:/......";

    [...]

    out = function();
}

int function()
{
    [...]
    imwrite(path,image);
    [...]

} 

问题是我的路径变量似乎以某种方式丢失了,因为如果我在函数中的 imwrite 之前尝试 cout << path 它不会打印任何东西,就好像路径是空的一样。

我应该怎么做才能在函数中访问我的路径变量?

最佳答案

您正在主函数范围内以及全局范围内定义 path 变量。

main() 中,您有一个新的 path 声明:

char path[100] = "...";

这有效地为您提供了两个具有相同名称但在不同范围内的变量。如果您从 main 方法中访问 path,它将访问局部范围的变量。

如果您希望保持这种方式,并删除全局作用域的 path 变量,您可以将您的函数重新声明为:

int function(char* p_path)
{
    imwrite(p_path, image);
}

并将值作为参数从 main 传递:

char path[100] = "...";
...
function(path);

另外,您可以通过引用指定全局命名空间的 ::path 从 main 方法中强制访问全局范围的变量。但那是另一回事了。

关于C++ Visual Studio 2010 如何在不同函数中使用 char 类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704126/

相关文章:

c++ - 从外部文件中读取字符串行并转换为十六进制

c++ - C++函数返回错误的数据类型

c++ - 如何拥有具有不同类型值的 map ?

visual-studio-2010 - "program can' t 启动,因为 msvcp100.dll 丢失”对于每个代码

c++ - 使用 curlpp 对 HTTP 服务器进行 GET 和 POST 调用

C++ 将 char 值设置为字符串?

c++ - 需要一个函数在用完有效值后继续减少值

c++ - 用图像或视频填充 OpenCV (OpenFrameworks) 中的 Blob

c++ - 添加要由#includes 使用的文件

matlab - 在处理二进制数时,如何从 char 格式转换为 double 格式?