指向多维数组的指针



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

#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();
}

谢谢

首先,它不清楚你要做什么。我只能建议修改语句

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 ));

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

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

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

相关内容

  • 没有找到相关文章

最新更新