标题:小问题,帮忙解决一下
只看楼主
纯情小郎君
Rank: 2
等 级:论坛游民
帖 子:84
专家分:80
注 册:2011-12-12
得分:0 
今天复习的时候恰好发现一道很类似的题,供楼主参考
程序代码:
main()
{int a[5]={1,2,3,4,5},*pa=a;
while(pa<a+5)
{printf("%d",*pa);
pa++;}

这里的a+5表示最后一个元素的之后的下标,而pa指针从第一个元素移动,这里这样表达就木有问题

老师说,2B是通向梦想的第一步
2012-02-27 14:31
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
楼主的程序在vc 6.0 上是死循环。验证完毕。

梅尚程荀
马谭杨奚







                                                       
2012-02-27 16:22
真的很菜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:94
专家分:151
注 册:2012-2-18
得分:0 
指针不懂啊
2012-02-28 00:23
qq312154421
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:124
专家分:120
注 册:2010-6-7
得分:0 
指针变量P是不能进行加法运算的,所你for( p=a; p<p+5; p++ )这里的p+5错了。

程序代码:
#include "stdio.h"
void main()
{
    int    a[5]={1, 2, 3, 4, 5}, *p, i;
   
    for( p=a; p<a+5; p++ )
        printf("%d  ", *p);
    p = a;
    printf("\n%d\n", *(p+4));  //而且这里的*(p+5)也是错的,下标已经越界了这是表示第6个原素
} 


[ 本帖最后由 qq312154421 于 2012-2-28 11:00 编辑 ]

勤奋不止,自强不息。
2012-02-28 10:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361611-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132654 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved