| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:关于指针的问题?麻烦大家看看!!!
只看楼主 加入收藏
rjvsky
Rank: 3Rank: 3
来 自:陕西西安
等 级:论坛游侠
帖 子:77
专家分:106
注 册:2012-3-6
收藏
得分:2 
主要还是形参和实参的传递问题,
void exchange(int* a,int* b)//申请两个int类型的指针,其值和实参相同,但不是同一空间。
    int *tmp;
    tmp = a;//让tmp指向实参
    a = b;//让新空间a的内容变为实参b的地址。
    b = tmp;//让新空间b的地址变为实参a
}//这两个新空间则会释放,不对调用者产生任何影响。

//2
void exchange(int* a,int* b)//申请两个int类型的指针,其值和实参相同,但不是同一空间。
{
    int tmp;
    tmp = *a;//让新空间a所指向的空间内容,也就是实参所指向的空间内容赋值给tmp
    *a = *b;//将新空间b所指向的空间内容,也就是实参所指向的空间内容,赋值给新空间a所指向的空间内容,也就是实参所指向的空间内容。
    *b = tmp;//将tmp赋值给新空间b所指向的空间内容,也就是实参所指向的空间内容。
}//这俩个新空间虽然会释放,但是该函数是将其所指向的空间内容进行了操作,完成交换!!

希望你能理解!!

企业需要的人才,是真正可以给他们带来经济效益的人,而不是一大堆没用的证书,看淡证书,强化自己···
2012-12-01 22:01
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:5 
程序代码:
void exchange(int* a,int* b)
{
    int *tmp;
    tmp = a;  //调用tmp指针指向a指向的地址
    a = b;  //调用a指向b指向的地址
    b = tmp;  //调用b指向tmp指向的地址
}void exchange(int* a,int* b)
{
    int tmp;
    tmp = *a;  //*a就是读取a指向的地址的值,tmp = *a 把a指向的地址的值赋予tmp
    *a = *b;  //把a指向的地址的值赋予b指向的地址的值
    *b = tmp;  //把tmp的值赋予b指向的地址的值
}





a 为调用指针,它本身代表指针指向的地址
而 *a 则为查看指针指向的地址的值

I have not failed completely
2012-12-02 10:38
快速回复:关于指针的问题?麻烦大家看看!!!
数据加载中...
 
   



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

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