读书人

求解printf(quot;123456quot;+三);的输出结果并

发布时间: 2012-09-27 11:11:17 作者: rapoo

求解printf("123456"+3);的输出结果并解释
今天同学说的一道题目,把我愣住了,希望各位大神解释下。

[解决办法]
$ a.exe
456
我的输出结果是456,在cygwin下编译的
[解决办法]
结果是456

你可以自己运行下就发现规律了。
printf("1234"+3)----4
printf("1234"+2)----34
printf("1234"+1)----234
这样写,应该类似于截断吧,把从这个位置开始到最后的字符输出,前面的忽略。
[解决办法]
printf("123456"+3);

char *s="123456";
printf(s+3);
等价。
[解决办法]
printf(3+"123456");

printf("123456"+3);

char *s="123456";
printf(3+s);

char *s="123456";
printf(s+3);
等价。
[解决办法]
不就是一个指针+3吗
[解决办法]

探讨
printf(3+"123456");

printf("123456"+3);

char *s="123456";
printf(3+s);

char *s="123456";
printf(s+3);
等价。

[解决办法]
看这个博文
[解决办法]
探讨

不就是一个指针+3吗

[解决办法]
探讨

引用:
"123456"是一个字符串,也是指针,还可以做数组用

说反了 字符串是一个数组 可以当指针用 证据就是
sizeof("123456");结果是7 而不是 4[假设指针大小是4]

读书人网 >C语言

热点推荐