char (*p)[]怎么赋值

char (*p)[]怎么赋值呀
想一个个赋值,赋值之后再把这个整体作为参数传给函数,这些怎么实现呢,或者有没有什么具体的例子?
谢谢大家~

char *p[3] = {"hello", "world", "ok"};
foo(p);

img

char (*p)[] 是一个指向字符数组的指针,可以用来指向一个字符数组。如果想一个个赋值,可以通过下标进行赋值。
以下是一个具体的例子:

#include <stdio.h>

void printArray(char (*p)[]) {
    for (int i = 0; i < 5; i++) {
        printf("%s
", (*p)[i]);
    }
}

int main() {
    char array[5][10] = {
        "Hello",
        "World",
        "How",
        "Are",
        "You"
    };

    char (*p)[];
    p = array;

    printArray(p);

    return 0;
}

在上述例子中,首先定义了一个大小为5的字符数组array,然后定义了一个指向字符数组的指针p,将p指向array。然后将p作为参数传递给printArray函数,函数内部通过下标访问并打印字符数组的每个元素。
输出结果为:


Hello
World
How
Are
You

【以下回答由 GPT 生成】

问题: char (*p)[]怎么赋值? (C语言)

回答: char (p)[]是一个指向数组的指针。要逐个赋值char (p)[],可以使用以下步骤: 1. 定义一个要赋值的数组。 2. 将数组的地址赋给char (*p)[]。

下面是一个具体的例子:

#include <stdio.h>

void printArray(char (*p)[]) {
    int i;
    for(i = 0; i < 5; i++) {
        printf("%s ", (*p)[i]);
    }
}

int main() {
    char arr[5][10] = {"Hello", "World", "How", "Are", "You"};
    char (*p)[];
    p = arr;
    printArray(p);
    return 0;
}

在上面的例子中,我们定义了一个包含5个字符串的数组arr,并通过赋值将它的地址赋给了char (*p)[]。然后,我们将p作为参数传递给printArray函数,该函数逐个打印数组中的字符串。

希望这个例子能够帮助您理解如何赋值和传递char (*p)[]类型的参数。如果还有其他问题,请随时提问!



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^