| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:指针的问题
只看楼主 加入收藏
yuanye2416
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2012-9-27
结帖率:92.31%
收藏
已结贴  问题点数:17 回复次数:7 
指针的问题
int a[8] = {25,18,36,42,17,54,30,63};
    int *p=a;
    int c2,c3,c5;
    c2=c3=c5=0;
    while (p<a+8)
    {
        if (*p%2==0) c2++;
        if (*p%3==0) c3++;
        if (*p%5==0) c5++;
        p++;
   
    }
    printf ("%d %d %d\n",c2,c3,c5);
请问下,这while (p<a+8) ,a+8是指什么啊?
a+8 应该是什么数字呢?
2012-10-31 13:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
数组元素的越界地址

[ 本帖最后由 wp231957 于 2012-10-31 13:33 编辑 ]

DO IT YOURSELF !
2012-10-31 13:31
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
收藏
得分:2 
a+8是指向整形的地址。再依次循环中,指针p加一,*p代表数组a中的一个元素。比如p=a;p++;*p=a[1];以此类推。
2012-10-31 13:34
橡皮孩子
Rank: 2
等 级:论坛游民
帖 子:23
专家分:29
注 册:2011-12-13
收藏
得分:2 
a+8指的是数组a8个元素以后的地址,a+8是一个随机数!这个是不可预见的,问操作系统吧!
2012-10-31 22:37
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:2 
a作为一个数组名字单独用时表示这个数组的第一个元素,+8就是向后移8位

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-31 22:54
fanjinxiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2012-10-15
收藏
得分:2 
p<a+8;就是首地址和最后一个地址的比较,这样形成循环

2012-11-01 14:01
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:2 
a+8代表数组最后一个元素后的地址!意思是把p的地址不断的自增,靠近a+8所代表的地址!
2012-11-01 14:48
jun331207100
Rank: 2
等 级:论坛游民
帖 子:12
专家分:37
注 册:2012-10-25
收藏
得分:2 
a 是数组的首地址,数组的合理地址为a到a+7
2012-11-01 21:39
快速回复:指针的问题
数据加载中...
 
   



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

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