|
![]() | 作者: ljsh012 [ljsh012]
![]() |
登录 |
p为结构体指针 a[3]为结构体数组 以下程序 p=a; for(i=0;i<3;i++,p++) printf("%s--%d",p->name,p->age); 执行时没问题,改为下面的程序后运行不抱错,但结果错误了 p=a; for(i=0;i<3;i++) printf("%s--%d",(p++)->name,(p++)->age); 看不出是哪里错了。请知者赐教。谢谢。 |
地主 发表时间: 04-08-27 20:23 |
![]() | 回复: windflower [windflower] ![]() |
登录 |
printf("%s--%d",(p++)->name,(p++)->age); 上一句p++使用了两次,自加了两次,你难道没看出吗? printf("%s--%d",(p++)->name,p->age); 这样应该没错吧,你试试。 |
B1层 发表时间: 04-08-27 21:18 |
![]() | 回复: ljsh012 [ljsh012] ![]() |
登录 |
e,你也提醒我就恍然大悟了。忘了程序的执行次序了。我想当然把两者视为并列。这样后 应该对了。谢谢。 |
B2层 发表时间: 04-08-28 12:10 |
![]() | 回复: 286 [unique] ![]() |
登录 |
本人强烈建议大写以后这样写: p=a; for(i=0;i<3;i++) { printf("%s--%d",p->name,p->age); p++; } 虽然多了一行,但可读性,产生错误的概率小多了。 |
B3层 发表时间: 04-08-30 10:03 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号