我不知道这段代码有什么问题,我只是在这里得到一个随机的结果:
#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
。