c - 从 C 中的函数返回一个 const 字符串

标签 c string function

我有以下代码:

const char * func_journey ()
{
    const char * manner = "Hello";

    manner = "World";

    return manner;

 }

 int main()
 {

     const char * Temp;

     Temp = func_journey();

     return 0;
 }

我在调试中运行它只是为了看看会发生什么,以某种方式从“Hello”变为“World”并且指针也发生了变化,即使我已将其声明为 const。

另一件事是,在运行结束时 Temp 是“World”,现在怎么可能呢? manner 是 func_journey 中的一个自动变量,它不应该在最后被销毁吗?

非常感谢。

最佳答案

I ran it in debug just to see what happens, somehow manner changed from "Hello" to "World"

这正是您的代码要求它执行的操作,因此它执行了您的要求也就不足为奇了。

and also the pointer changed even due I have declared it a const.

您将其声明为指向 const 的指针,而不是 const 指针(我知道,这听起来可能令人困惑)。当你写const char *时,它意味着指向的是const。如果要说指针本身是const,则需要

char * const manner = "Hello";

关于c - 从 C 中的函数返回一个 const 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176872/

相关文章:

c - Fortran 和 c 的互操作性

python - for循环后如何将结果打印到文件中

javascript - Excel 公式转 JavaScript 函数

C++使用派生类的对象访问基类的 protected 成员函数

c - 使用 ARM 处理器 (HPS) 的 DE1-SoC 上的硬件加速算术逻辑单元 (ALU) Linux 应用程序

python - 将变量从 python 实时传递到 C 的最佳方法

python - 在数字字符串中添加逗号

java - 用逗号分割字符串并忽略双引号中的逗号

c++ - 在子类中调用基类的模板函数是否合法?

c++ - 为什么当我放入偶数个元素时我的程序不工作