【问题标题】:Looping through *array[] but not array[] in C?在C中循环*array[]而不是array[]?
【发布时间】:2015-10-29 11:45:34
【问题描述】:

是什么让*array[] 能够被循环通过,而array[] 却不能? 示例:

    int main()
{
    int i;
    char *greeting[] = {"Hello", "World",
                        "Good Bye", "World"};

    for(i = 0; i < 4; i++)
        printf("Greeting message: %s\n", greeting[i] );

    return 0;
}

有没有办法从这个数组中的特定元素中获取字符?如果我想在最后一个元素中获取字符“W”,这可能吗?或者是否可以打印出整个字符串?

【问题讨论】:

    标签: arrays loops pointers


    【解决方案1】:

    W 是greeting[3][0]

    只需将greeting[n] 视为另一个字符数组。

    printf("first char of greeting 3 is %c\n", greeting[3][0]);
    

    【讨论】:

    • 这是否意味着 *greeting[] 是二维数组,而 greeting[] 是一维数组?
    • 问候语是一种二维字符数组。 greeting[n] 是一维字符数组。 *greeting[3] 是 'W' - 不是一个数组,而是一个实际的字符。
    • 你也可以写成 *(*(greeting + 3)) 来代替 greeting[3][0]
    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多