char*s="abcde";s+=2;printf("%d",s),求结果

[复制链接]
查看11 | 回复5 | 2012-2-11 18:52:52 | 显示全部楼层 |阅读模式
结果是4325410 它是地址s在数字常量区中的首地址偏移2后的地址,就是字符串中c的地址。...
回复

使用道具 举报

千问 | 2012-2-11 18:52:52 | 显示全部楼层
如果int类型为两个字节的话,结果为:先把cd转化成二进制,再转化为整数,这就是结果。如果int类型为四个字节的话,结果为:先把cde\n转化成二进制,再转化整数,就是它的值...
回复

使用道具 举报

千问 | 2012-2-11 18:52:52 | 显示全部楼层
这个程序没有多大意义啊!如果把printf("%d",s)改为printf("%s",s);应该是"cde" (不包括引号),...
回复

使用道具 举报

千问 | 2012-2-11 18:52:52 | 显示全部楼层
输出的是指针s的地址,由于指针没有定义指向,所以输出的结果是随机的。即使定义了指向变量,那么也无法知道指其物理地址的值...
回复

使用道具 举报

千问 | 2012-2-11 18:52:52 | 显示全部楼层
输出字符c的地址...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行