找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3564|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

指針互換的兩種形式(換值or換地址)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51090 發(fā)表于 2014-9-17 14:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1......換值不換地址
    函數(shù)形式,此時(shí)函數(shù)可以

#include<stdio.h>
void swap (int * p, int *q)  //下面出現(xiàn)的是地址,所以此時(shí)刻應(yīng)該出現(xiàn)的是指針
{
int temp;
temp = *p;
*p = *q;
*q = temp;
}
int main (void)
{
int a, b;
int * p, * q;
scanf ("%d %d",&a,&b);
p = &a;
q = &b;

if (a
  swap(p,q);  //此時(shí)p q都是地址,這句換相當(dāng)于前面的幾行取消掉,改為swap(&a,&b)
     //因此,指針的函數(shù)調(diào)用用的是地址作為變量
printf ("max = %d  min =%d\n",a,b);

return 0;
}
2.....換地址不換值
   用函數(shù)形式,不可以這樣,只可以直接進(jìn)行互換
  
// 不可能通過(guò)執(zhí)行調(diào)用函數(shù)來(lái)改變實(shí)參指針變量的值,但是可以改變實(shí)參指針變量所指變量的值
//  所以這個(gè)不可以進(jìn)行函數(shù),只可以直接進(jìn)行寫(xiě)
#include<stdio.h>
void swap (int * p, int * q)
{
int * temp;
temp = p;
p = q;
q = temp;
}
int main (void)
{
int a, b;
scanf ("%d %d",&a,&b);
if (a
  swap(&a,&b);

printf ("max = %d  min =%d\n",a,b);
return 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表