c程序填空

[复制链接]
查看11 | 回复2 | 2009-8-9 09:01:13 | 显示全部楼层 |阅读模式
第一题 while中的 (*n)--值为0时,退出循环,由于(*n)--的值是*n,此值使用后在进行自减,所以,如果(*n)--值为0时,退出循环后,*n在进行自减操作,也就是-1。打印的是++(*n),应该是先进行自加操作,后使用值,所以-1自加1,就是0.****此题注意i++ 与 ++i的区别。第二题 首先,你要了解,char型变量占一个内存空间,而long占4个内存空间。所以此题中q占有的位置相当于p中的"abcd"前四个内存空间。q++后,地址先后推移一位,由于它占有4个,所以就指向p中的"efgh",所以最后打印的就是"efgh"。***此题要明白各个变量类型所占的内存空间,对于指针操作很重要...
回复

使用道具 举报

千问 | 2009-8-9 09:01:13 | 显示全部楼层
1:while是当里面的数不为0时都是真,所以要一直执行下去((*n)--)执行下去最后就是到0了,这时while(0)为假,停止执行。注意,这时的话n还是要减1的。然后退出while,执行下面的(++(*n))。++(-1)了就是0了。2:long是长整形变量,4个存储空间。所以q=(long*)p之后,q就是“abcd”。然后是q++,这里要注意...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行