传递给函数后重用指针的问题

Joh*_*dio 0 c++ pointers const function

所以,当我将一个const char *函数传递给一个函数时,我可以再次使用它吗?它似乎最终吐出废话给我.

const char *config_file = "file.txt";

function(int x, config_file);
cout << "Number" << x;


secondfunction(int y, config_file);
Run Code Online (Sandbox Code Playgroud)

我需要另一个指向config_file的指针吗?

如果是这样,我该怎么做?

谢谢!

pax*_*blo 10

不,你可以使用它就好了.尽管您提供的代码是无法编译的,但我想我理解您的要求.

代码段如:

const char *x = "Hello";
fnA (x);
fnB (x);
Run Code Online (Sandbox Code Playgroud)

应该没问题.

如果你发现它fnB没有得到它所期望的那么:

  • fnA正在改变x指向的东西(通常不可能,因为它是a const char *); 要么
  • 一些未示出的代码正在改变指针本身; 要么
  • 有些东西正在破坏记忆.

试试这段代码作为例子:

#include <iostream>
#include <iomanip>

static void fnA (const char *a) {
    std::cout << "fnA: [" << a << "]" << std::endl;
}
static void fnB (const char *b) {
    std::cout << "fnB: [" << b << "]" << std::endl;
}
int main (void) {
    const char *x = "Hello";
    fnA (x);
    fnB (x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

按预期输出:

fnA: [Hello]
fnB: [Hello]
Run Code Online (Sandbox Code Playgroud)