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