如何使用指针打印数组?

Blu*_*ue7 -1 c c++ arrays pointers

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

这是我的意思的一个例子:

char* myFunction (void)
{

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

return myArray;
}


int main(void)
{

    printf("%s",myFunction);

return 0;

}
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

mas*_*tch 6

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;
}
Run Code Online (Sandbox Code Playgroud)
  1. 字符串要求""不是"(用于个别字符)
  2. char foo [5]将是一个字符数组.字符串本身是字符数组,所以你需要char*foo [5]
  3. 你不能返回一个本地声明的数组(通常,你不能返回一个指向本地声明的数据的指针,因为它存在于堆栈中,一旦函数返回就无效)
  4. myFunction是一个函数,如果想要调用它,你需要().但%s无论如何都不会起作用,因为%s用于打印字符串.你需要一个for循环遍历数组,然后用%d打印出整数.但是,由于这是C++,你可能应该使用cout而不是printf(一个C std库函数).