示例代码字符:尝试打印存储在一个2维数组
char map [20][20];
map [0] [0]=1;
printf ("%s\n", map[0][0]);
在编译过程中,我得到这样的警告:
warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’
虽然如果我写printf ("%s\n", &map[0][0]);
它在某种程度上正常工作。
这是为什么?
编辑:
对不起我的坏杰夫。如果我试试这个
map [0][0]='X';
printf ("%s\n", map[0][0]);
我仍然得到同样的警告。
这将是有益的如果你用你正在使用的语言标记你的问题。 –
你正在试图打印什么?你的两个格式字符串都表明你正在尝试打印一个*字符串*,但是你的问题和可变参数被推入到'printf()'调用中,这表明你正在尝试打印一个*单字符*。那么你想要什么?一个字符串(即map [0])或一个char(即map [0] [0])? – WhozCraig