我正在尝试使用以下代码依次打印2d char arrray的每个元素:
#include <stdio.h>
#include <stdlib.h>
char positions[3][3] = {'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I'};
int main(){
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
printf("%s \n", &positions[i][j]);
}
}
return 0;
}
但是输出是:
ABCDEFGHI
BCDEFGHI
CDEFGHI
DEFGHI
EFGHI
FGHI
GHI
HI
I
代替:
A
B
C
D
E
F
G
H
I
而且我无法解决该问题。我四处张望,却找不到这个特定问题的任何答案。任何建议都很好。谢谢。
您的printf确实会占用%s,这会强制将char数组从第一个条目开始转换为字符串。尝试跑步
printf("%c \n", positions[i][j]);
打印出字符。看看会发生什么;)
问候
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句