指向多维数组的指针

时间:2014-03-24 23:53:47

标签: c arrays pointers multidimensional-array

我不知道这段代码有什么问题,我只是在这里得到一个随机的结果:

#include <stdio.h>
#include <conio.h>
int main() {
    char arr[3][2] = {{'z','a'},{'e','r'},{'x','v'}};
    int i;
    scanf("%d",&i);
    printf("%c",*(arr+i));
    getch();
}

由于

2 个答案:

答案 0 :(得分:1)

首先,目前还不清楚你要做什么。 我只能建议改变陈述

printf("%c",*(arr+i));

以下方式

printf("%c",**(arr+i));

在这种情况下,如果i将在0 - 2范​​围内,则此语句将输出相应行的第一个字符。例如,对于i等于tp 1,输出将是

e

如果要使用i作为索引输出数组中的任何字符,请使用

printf("%c", *( *arr + i ));

for ( int i = 0; i < 6; i++ ) printf("%c", *( *arr + i ));

答案 1 :(得分:0)

如果您提供值0,那么它将给结果分配第零项的地址 如果您提供1,它将打印第一项的地址

zero-th item  = {'z','a'},
first item = {'e','r'}

它将使用格式说明符%c打印上述2项的地址,在这里您要尝试打印地址%c而不是%u