QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1056|回复: 2

输出结果很奇怪,不,是相当奇怪

[复制链接]
发表于 2005-9-20 08:51:52 | 显示全部楼层 |阅读模式
#include <stdio.h>
void main()
{
        char pcc[6]="abcde";
        int  pic[5]={1,2,3,4,5};
        char *pc=pcc;
        int  *pi=pic;
        printf("pc=%p,++pc=%p;pi=%p,++pi=%p\n",pc,++pc,pi,++pi);
}
输出结果
pc=12ff79,++pc=12ff79;pi=12ff70,++pi=12ff70
你能想象的出结果会是这样吗,如果是,请指教,xiexie
发表于 2005-9-20 09:09:59 | 显示全部楼层
这有什么可奇怪的,参数自右向左计算,
++pi后pi指向2,
然后输出pi的值。

然后pi并没有被改变,继续输出pi的值。

接着执行同样的操作。
回复

使用道具 举报

发表于 2005-9-20 09:16:51 | 显示全部楼层
或许,你可以试试这样的运行结果
printf("pc=%p,++pc=%p;pi=%p,++pi=%p\n",++pc,pc,++pi,pi);
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-5 11:46 , Processed in 0.039930 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表