c++ - 如何使用指针打印数组?

标签 c++ c arrays pointers

我有一个函数需要返回一个数组,因为这是不可能的,它会返回指向该数组的指针。然后我需要在主函数中打印这个数组。我该怎么做?

以下是我的意思的示例:

char* myFunction (void)
{

    char myArray[5] = {'one','two','three','four','five'};

return myArray;
}


int main(void)
{

    printf("%s",myFunction);

return 0;

}

但这只是打印指针:uF$。或者,如果我将函数打印为整数,它会打印:791013。 那么我如何实际打印数组中的 5 个元素呢?

谢谢!

最佳答案

char* myFunction (void)
{
    char myArray[5] = {'one','two','three','four','five'}; // WRONG see 1 and 2
    return myArray; // WRONG see 3 
}

int main(void)
{
    printf("%s",myFunction); // WRONG see 4
    return 0;
}
  1. 字符串需要“”而不是“”(用于单个字符)
  2. char foo[5] 是一个字符数组。字符串本身是字符数组,因此您需要 char * foo[5]
  3. 您不能返回本地声明的数组(通常,您不能返回指向本地声明的数据的指针,因为它存在于堆栈中,并且一旦函数返回就无效)
  4. myFunction 是一个函数,如果想调用它,你需要在它后面加上 () 。但 %s 无论如何都不起作用,因为 %s 用于打印字符串。您需要一个 for 循环来迭代数组,然后使用 %d 打印出整数。但是,由于这是 C++,因此您可能应该使用 cout 而不是 printf(C std 库函数)。

关于c++ - 如何使用指针打印数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307416/

相关文章:

创建 mxArray 数据并将其从其他函数传递到 Mex 网关函数

c - 使用 perl XS 链接到 C 共享库

c - Nanomsg TCP 握手

php - 将数组的php数组转换为单个数组

java - 如何通过引用 Java 中包含数组的 HashMap 来向数组添加值?

python - 如何在 TensorFlow 中实现递归神经网络?

c++ - 在c++中添加两个c字符串

javascript - 在数组中,如何找到给定浮点值的最接近的键?

c++ - 我可以像使用父类指针一样使用继承的类指针吗?

c++ - QML 文本元素上的 dataChanged?