zxb1717 发布留言 2008-7-3 21:12
请大家看看这个结果是多少
int **p;
int *m[3] = {"welcome","to","our","school"};
p = m;
printf("%c\n", *p++);
printf("%c\n", **p);
请问执行完后结果是多少?
中学者 发布留言 2008-7-3 21:17
靠眼力- -....不通过
[ 本帖最后由 中学者 于 2008-7-3 21:18 编辑 [/it]]
zxb1717 发布留言 2008-7-3 21:21
我从没用过printf语句
有错误吗?请大家指教
中学者 发布留言 2008-7-3 21:26
第二句,,,类型不匹配
zxb1717 发布留言 2008-7-3 21:31
那正确的应该怎么改啊,改完后输出是多少,谢谢了
zxb1717 发布留言 2008-7-3 21:36
哦,这个是笔误,这样可以了吧
char *m[3] = {"welcome","to","our","school"};
初中毕业 发布留言 2008-7-3 21:39
根本是错误~不能通过
zxb1717 发布留言 2008-7-3 21:42
拜托了,那正确的应该怎么改啊
zxb1717 发布留言 2008-7-3 21:43
是不是指针也要改成这样
char **p;
zxb1717 发布留言 2008-7-3 22:00
大侠帮忙看一看啊
zxb1717 发布留言 2008-7-3 22:10
原题是这样的
main()
{
char **p;
char *m[3] = {"welcome","to","our","school"};
p = m;
printf("%s\n", *p++);
printf("%s\n", **p);
}
这样执行后结果是多少啊?
chenlong585 发布留言 2008-7-3 22:37
char *m[3] 改成 char *m[4] 就可以了
char *m[4] = {"welcome","to","our","school"};
输出是:
welcome
一行乱码 (我用Wtc编写的)
zxb1717 发布留言 2008-7-3 22:46
谢谢chenlong585,第二句输出怎么是乱码啊?什么原因呢?我以为是welcome
lan_computer 发布留言 2008-7-3 23:11
char **p;//定义的时候注意笔误
char *m[3]={"welcome","to","our","school"};//同上
p=&m;//**P是指向指针的指针,有点饶口!!不过P里存的应该是指针的地址,既M的地址
printf("%c\n", *p++);
printf("%c\n", **p);
//你这是输出头一个字母,要输出整行“to”,“welcome”应该用printf("%s\n",*p++);和printf("%s\n",**p);
cosdos 发布留言 2008-7-3 23:48
/* 没测试过 */
当
sizeof(int) == 4
sizeof(m[0) == 4
则
printf("%c\n", *p++); (char)m[0] // m[0] 为int 地址类型
printf("%c\n", **p); (char)m[1] // m[1] 为int 地址类型
[ 本帖最后由 cosdos 于 2008-7-3 23:50 编辑 [/it]]
页: [1]