【问题标题】:Passing char pointer array as parameter将 char 指针数组作为参数传递
【发布时间】:2013-08-26 20:50:29
【问题描述】:

如何将char* 数组作为参数传递,而不创建一个并初始化它?

此代码有效(创建一个初始化代码):

char *messages[] = {"Zero", "One", "Two", "Three"};
printf("%s", messages[1]);

但是如果你这样传递它就行不通了:

#include <stdio.h>

void printElement1(char *messages[]) {
    printf("%s", messages[1]);
}

int main(void) {

    printElement1({"Zero", "One", "Two", "Three"});

    return 1;
}

我不能使用va_list,该函数采用char* 数组,仅此而已。

【问题讨论】:

    标签: c arrays pointers char


    【解决方案1】:

    您只是缺少复合文字的类型。将该行更改为:

    printElement1((char *[]){"Zero", "One", "Two", "Three"});
    

    它会正常工作的。

    【讨论】:

    • 哇!太不可思议了,我不知道你可以这样打字。
    • 这不是类型转换,而是复合文字。
    猜你喜欢
    • 2015-03-17
    • 2012-01-24
    • 2018-05-14
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多