| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:c 语言的指针如何使用?
只看楼主 加入收藏
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:3 
c 语言的指针如何使用?
初学指针,不是太懂,请详细解释一下(目的是:输入三个数,输出其中的正数和负数的个数)
#include <stdio.h>
void statistic(int a[],int n,int *p,int *q) {
    int i=0;
    for(i=0;i<n;i++){
        if(a[i]>0) *p++;
        else *q++;
    }
   
}
int main(int argc, char *argv[])
{
    int i,posi_num=0,nega_num=0;
    int *p=&posi_num,*q=&nega_num;
    int a[3];
    for(i=0;i<3;i++);
    scanf("%d",&a[i]);
    statistic(a,3,p,q);
    printf("%d %d",posi_num,nega_num);
    return 0;
}
搜索更多相关主题的帖子: include return 如何 
2014-04-21 23:14
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
#include <stdio.h>
void statistic(int a[],int n,int *p,int *q) {
    int i=0;

    for(i=0;i<n;i++){
        if(a[i]>0) (*p)++;        // 运算符*,++优先级相同,但结合方向是自右至左,所以*p++等价于*(p++),不是统计变量加1,而是指针下移,错了。所以你调用之后统计变量都是0.
        else (*q)++;            //而(*p)++才是统计变量加1,必须加上括号.
    }
   
}
int main(int argc, char *argv[])
{
    int i,posi_num=0,nega_num=0;
    int *p=&posi_num,*q=&nega_num;
    int a[3];

    for(i=0;i<3;i++)        //----这里多了一个分号!
        scanf("%d",&a[i]);

    statistic(a,3,p,q);
    printf("%d %d\n",posi_num,nega_num);

    return 0;
}
2014-04-22 08:04
鸥翔鱼游
Rank: 5Rank: 5
等 级:职业侠客
帖 子:182
专家分:323
注 册:2014-4-19
收藏
得分:20 
看了此贴菜鸟又涨姿势了
2014-04-22 14:24
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
收藏
得分:0 
3q万分
2014-04-22 19:20
快速回复:c 语言的指针如何使用?
数据加载中...
 
   



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

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