| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖, 1 人收藏
标题:关于指针
只看楼主 加入收藏
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
结帖率:91.8%
收藏(1)
已结贴  问题点数:20 回复次数:5 
关于指针
我刚起看了指针,但是不懂怎么用啊,那个*p和p区别在哪里,我一直搞不明白。求大神写一段可以很好的学习指针的代码(可以的话写下注释)
搜索更多相关主题的帖子: 学习 
2012-10-22 19:15
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:5 
/*函数实现下面功能:
*对输入的数值子集作相应的处理
*a:把输入数据存储到数组中
*b:计算每个子集的平均数
*c:计算所有数值的平均数
*d:找出15个数值中的最大值
*e: 打印结果
*10.12  编程练习12
*/

double averge(double *xp, int size)
{
    int i;
    double avr=0;

    for(i=0; i<size; i++,xp++)
        avr += *xp;
    return avr /= size;

}

double master(double *xp, int size)
{
//    int i = size;
    double master= *xp;

    for(;size>0;size--,xp++)
    {
        if(master < *xp)
            master = *xp;
    }
    return master;
}

double sum_averge(double *xp, int size)
{
    int i;
    double sum_avr=0;

    for(i=0; i<size; i++,xp++)
        sum_avr += *xp;
    return sum_avr /= size;

}


void double_process(void)
{
    double bx[3][5] = {
        {1.0, 2.0, 3.0, 4.0, 5.0},
        {6.0, 7.0, 8.0, 9.0, 10.0},
        {11.0, 12.0, 13.0, 14.0, 15.0}
        };
    int i;

//    scanf_son(bx, 3);

    for(i=0; i<3; i++)
        printf("AV%d=%lf\n",i,averge(*(bx+i), 5));
    printf("SUM_AVERGE=%lf\n",sum_averge(&bx[0][0], 15));
    printf("MASTER=%lf\n",master(&bx[0][0], 15));

}

正在学习C语言 空余做的练习, 有些指针的简单应用吧

打好基础,学会站在巨人的肩膀上!
2012-10-22 20:15
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 2楼 wengege
学习了,多谢

我只是个演员,还是业余的!!
2012-10-22 20:24
虐尸专家
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2012-10-23
收藏
得分:5 
int *p;
*p是存放int类型的地址,楼主别着急,新手对指针都是不好理解的,包括我,要不你去看看郝斌老师的视频。
2012-10-23 01:38
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:5 
程序代码:
#include <stdio.h>
//不理解括号里面的,就理解括号外面的
int main()
{
    int q=0;        //q 是 int 型的一个变量
    printf("%d\n",q);
    int*     p;     //p 是 int* 型的一个变量
    p=&q;           //把内存中q的 放在p中"关"起来(其实关的是q在内存中的地址)
    *p=1;           //注意 是* 不是 int*,意思就是  取出其中的东西,即:q 然后赋值1(就是把1放在"我"这里面这个数值所对应的内存上)
    printf("%d\n",q);

    int a;
    scanf("%d",&a);

  return 0;
} 

WE GO
2012-10-23 08:49
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
收藏
得分:5 
回复 楼主 经哥
如int *p,则P就是指针类型的,其中P的“指类”为int *,p之空间只是存放了一个4字节的地址的值,而这个值就是一个int数据类型的首地址,在内存中只要知道int的首地址,再加上int的长度就知道实际的空间了
2012-10-23 09:13
快速回复:关于指针
数据加载中...
 
   



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

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