| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:C中的指针解释
只看楼主 加入收藏
wangfangjin
Rank: 1
等 级:新手上路
帖 子:29
专家分:5
注 册:2010-7-13
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:6 
C中的指针解释
各位大侠恩能够不能结合例子解释下指针的用法?

[ 本帖最后由 wangfangjin 于 2010-9-10 21:58 编辑 ]
搜索更多相关主题的帖子: 解释 指针 
2010-09-10 21:54
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:4 
楼主的帖子改的可真快,那我编辑掉好了

[ 本帖最后由 御坂美琴 于 2010-9-10 22:09 编辑 ]

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-09-10 21:56
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:4 
2010-09-10 22:06
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:4 
真巧我刚去找的。让指针不再困扰你 作者: moonwalker 阅读人次: 21629 文章来源:本站原创    发 布时间:2008-5-2网友评论( 267 )条 原帖及讨论: https://bbs.bccn.net /thread-211258-1-1.html声明:moonwalker 作于2008年4月 26日 转载请注明出处    指针对一部分初学者来说一直 是一个无法逾越的障碍,没有指针的C语言就好像没有左腿的短跑运动员。今天我来试试换一种方法来理解指针,希望能帮还在为指针挣扎的朋友们理清思路,高手略过即可。    我们先认为内存是一家客栈 (看起来这和老掉牙的大楼的比喻没什么区别,但是请你耐心看下去)。同大部分的客栈一样,这家客栈 有天、地、人等各种档次的房间,用现在的话就是单人间、双人间、四人间等等。来住店的客人也是车水马龙,三教九流都有,我们看看都有哪些人:    快乐单身汉char,还有char的小 弟unsigned char,他们只住单人间;    short int, unsigned short int都是 已婚无孩,他们只住二人间;    int, unsigned int, long int,  unsigned long int,这些都是四口之家,当然住四人间了;说起来这里面的前两位,int和 unsigned char,在dos时代还是二人世界,住二人间,后来出了32位系统后,他们才成为四口之家,等到了64位时代,他们中有人会变成8口之家。人口变化太快,所以人口问题就不讨论了,只要知道有几口人(几个字节)就住几人间就行了。    另外还有一些更庞大的家庭 double,float我们就不一一赘述了。    住客栈是要登记的,至少老板 要知道哪个房间没人住,好租给新来的客人吧?于是就把每位客人的房间号都记在了纸上,然后把纸卷在了针上,大大节省了空间,这就是纸针(指针*)啦,^_^。为了安全,登记完的指针也放在客房里了,不过是没有人住的房间。    为了区分不同身份的客人(本 客栈不搞歧视,区分身份只是为了便于管理),客栈用颜色不同的纸来记录房间号,这就有了不同类型的指针,比如蓝色的char*这种指针只记录单人间的房间号,红色的int*只记录四人间的。看起来分这么多种类很混乱,但是如果有很多同类型的组团(数组)来住店时就方便了,上次int a[100]来旅游的时候,就找到那一沓100张红色的指针就可以知道谁住哪里了。比如团长a[0]的房间号记在第一张纸p上,那么翻开下一页(p++)你就找到了隔壁的房间号,你拿前四张去找人正好可以凑一桌麻将了。虽然指针分为很多颜色(类 型),但是不管多大的家族都只住一间屋子,只有一个房间号,所以无论什么颜色的指针都具有相同的大小,长度就是房间号那么长。并非所有人都像int a[100]那么幸 运,他们来的时候正好一层100个房间都没人住,于是他们可以住在同一片连续的区域。上次m, n, p, q, r一起来想住连续的几个屋子,方便一起去玩,偏偏找不到合适的房间,只好m住3楼,n住5楼,…,总之都很远。可是m老是来问老板他的朋友们住哪里?老板每次要找半天,后来想了个办法,把记录这几个人的指针用一个盒子*p[5](指针数组)放在一起,这样就方便多了。    有的客人脾气很怪,比如char  F[4],他们四个是一个乐队的,可是又不愿住四人间,非要一人住一间,还一定是连着的,如果不连着就不住,老板没办法,给他们找了连着的四间房。可是大牌还真是难缠,他们早上出去工作就退房,晚上又要回来住,老板又要给他们找连续的四间房,天天如此,而且每次都浪费四个指针,客栈的成本一下提高了。老板又想了个办法,他专门为这些人订做了另一种颜色的指针(*p)[4](指向数组的指针),他用这个指针记录他们老大F[0]的房间号,剩下的三位房间号就是紧挨着的三间,减少了不少浪费。    一直忘了介绍客栈的两个伙 计,一个叫“小&”,另一个叫”小*”,看外形就知道,”小*”比较圆滑,肯定是经常可客人,而“小&”肚子比较大,一看就是常年打算盘,记帐不活动造成的。有时候有人来客栈找住店的人,首先要查找客人的房间,“小&”就是负责去取保存房间号的指针的,比如上面提到的m想找r去逛街,“小&”就去找r的指针了(&r), “小&”找了半天,终于找到了r的指针p(p = &r),他把p交给”小*”, ”小*”就拿着p去叫客人了(*p就是r了)。看起来好像”小*”的工作比“小&”轻松,其实”小*”也不容易,他要区分指针的颜色(类型)来决定叫多少个人,比如拿的是蓝色的指针(上面说得是char型),就只叫一个客人就可以,如果是红色的(int)就得叫4位客人,如果少叫了一位楼下找人得客人会生气得,因为没有把要找的人找全。    好了,这家客栈介绍完了,为 了感谢你看到这里,现在客栈经营权就交给你了,希望你财源广进!文章录入:静夜思    责任编辑: 静夜思

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-10 22:09
俊游天下
Rank: 2
等 级:论坛游民
帖 子:5
专家分:11
注 册:2010-9-3
收藏
得分:4 
指针就是指代你所存放的数据的地址!!!简单的说,指针就是内存地址,他的值不是被存储的内容,而是表示被存储的数据所在的地址!!!
2010-09-10 22:09
wangfangjin
Rank: 1
等 级:新手上路
帖 子:29
专家分:5
注 册:2010-7-13
收藏
得分:0 
回复 2楼 御坂美琴
由于网络问题,那个帖子我以为没发布成功,那个我还是不明白【见为什么main()函数中的注释部分】
#include <stdio.h>

/*
**翻转参数字符串
*/
void
reverse_string(char*str)
{
    char *last_char=NULL;
    /*
    **把last_char设置为指向字符串的最后一个字符
    */
    for(last_char=str;*last_char!='\0';last_char++)
        ;
    last_char--;
    /*
    **交换str和last_char指向的字符串,然后str前进一步,last_char
    后退一步,在两个指针相遇或擦肩而过之前重复这个过程。
    */

    while(str<last_char)
    {
        char temp=NULL;
        temp=*str;
        *str++=*last_char;
        *last_char--=temp;
    }
}

int
main()
{
    char aStr[]="asdfgh";//用char *aStr="asdfgh";,编译错误

    reverse_string(aStr);
    printf("%s\n",aStr);
    return 0;
}

[ 本帖最后由 wangfangjin 于 2010-9-11 10:04 编辑 ]
2010-09-11 10:03
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:4 
数组名是常量
指针是变量

ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-09-11 11:08
快速回复:C中的指针解释
数据加载中...
 
   



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

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