社区
C语言
帖子详情
混乱的printf语句
flydown
2010-05-24 02:42:27
各位分析下这个语句
printf(&unix["\021%siz\012\0"], (unix)["have"] + "fun" - 0x60);
我在linux用gcc编译,运行结果:uniz
...全文
118
6
打赏
收藏
混乱的printf语句
各位分析下这个语句 printf(&unix["\021%siz\012\0"], (unix)["have"] + "fun" - 0x60); 我在linux用gcc编译,运行结果:uniz
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhaiershuaixu
2010-05-25
打赏
举报
回复
的确够“混乱”。
东莞某某某
2010-05-24
打赏
举报
回复
嫌看得累 呵呵
Boover
2010-05-24
打赏
举报
回复
受教了!
flydown
2010-05-24
打赏
举报
回复
这个分析够透彻
因为:数组str[n] <==>(n)[str]
所以:(unix)["have"] + "fun" - 0x60 <==> "have"[1]+"fun"-0x60
即: 'a'+"fun"-0x60
因为:'a' = 0x61
所以:变为“fun”+1
因为:“fun”是个char型指针
所以:指向“un”
因为:\021是一个八进制数,代表第一个字符
所以:&1["\021unix\012\0"]<==>"unix\012\0"
因为:012是八进制的换行,\0是字符串结束
所以:最终结果是
unix
dinjay
2010-05-24
打赏
举报
回复
编译器不同.....建议LZ不要过多的去研究这样的问题
huanmie_09
2010-05-24
打赏
举报
回复
http://faq.csdn.net/read/120204.html
若假设第一个
printf
语句
输出是ffca,则第二个
printf
语句
输出的是什么,9.60题
若假设第一个
printf
语句
输出是ffca,则第二个
printf
语句
输出的是ffdc 如果你的编译器是16位int,那p每次+1就是+2个字节,也就是+2个内存单位,因此p+9就是ffca+(2*9)=ffca+12=ffdc,选B项 如果编译器是32位int,p每次...
c语言
printf
输出
语句
_C语言中另一个
printf
()
语句
中的
printf
()
语句
c语言
printf
输出
语句
A
printf
() function is a standard library function, that is used to print the text and value on the standard output screen. Here, we will evaluate the expression – where a
printf
()...
c语言 define
printf
,#define和
printf
不是c
语句
?那是什么?
#define和
printf
不是c
语句
?那是什么?发布时间:2020-04-29 09:32:13来源:亿速云阅读:135作者:小新#define和
printf
不是c
语句
?那是什么?相信有很多人都不太了解,今天小编为了让大家更加了解#define和
printf
,...
keil下用
printf
语句
输出
在keil下通过
printf
语句
输出字符串到uart窗口
printf
语句
中包含'\0'字符的处理
printf
语句
中包含'\0'字符的处理 1 #include <stdio.h> 2 3 int main (void) 4 { 5
printf
("helloxx\0xxworld\n"); 6
printf
("\n------------\n"); 7
printf
("hello%sworld\n", "xx\0xx"); 8 } .....
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章