青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

數據加載中……

基本概念:函數的傳值(4)

參數是一個指針的引用  的分析。

C++ Primer有這方面的介紹。看了以后不是很明白。

先來一個常規的:

void fun2(int *a, int *b){
    int  tem = *b;
    *b = *a;
    *a = tem;
}

調用;

int a = 1;
int b = 2;
int *a1 = &a;
int *b1 = &b;
fun2(a1,b1);

 

運行之后。a,b的值互換,a1 的值是a的地址。b1的值是b的地址。指針的值沒變。

 

看看參數是一個指針的引用的:

void fun1(int *&a, int *&b){
    int *tem = b;
    b = a;
    a = tem;
}

 

    int a = 1;
    int b = 2;
    int *a1 = &a;
    int *b1 = &b;
     fun1(a1,b1);

結果是:a1 跟 b1 的值交換。a1的值是b的地址,b1的值是a的地址。 a,b的值不變。也就是說,指針的值改變了。a,b的值沒有變。

 

匯編代碼:

調用的:

mov     dword ptr ss:[ebp-4], 1      ;a
mov     dword ptr ss:[ebp-C], 2     ;b
lea       eax, dword ptr ss:[ebp-4]  ;a的地址
mov     dword ptr ss:[ebp-8], eax  ;給*a1賦值
lea       ecx, dword ptr ss:[ebp-C]   ;b的地址
mov     dword ptr ss:[ebp-10], ecx  ;給*b1賦值
lea       edx, dword ptr ss:[ebp-10]  ;b1的地址 
push    edx                              ; 參數2   從右向左壓棧的
lea       eax, dword ptr ss:[ebp-8]    ;a1的地址       
push    eax                              ; 參數1
call      00401000                     ; fun1的地址

 

fun1的匯編:

mov     eax, dword ptr ss:[ebp+C]     ;參數2   b1的地址
mov     ecx, dword ptr ds:[eax]         ;ecx為 b1的值 b的地址 
mov     dword ptr ss:[ebp-4], ecx      ;b1的值 b的地址  給tem
mov     edx, dword ptr ss:[ebp+C]     ;參數2      b1的地址 
mov     eax, dword ptr ss:[ebp+8]      ;參數1     a1的地址
mov     ecx, dword ptr ds:[eax]         ;ecx為  a1的值 a的地址
mov     dword ptr ds:[edx], ecx         ;b1的值 現在就是a的地址呢。
mov     edx, dword ptr ss:[ebp+8]      ;參數1     a1的地址
mov     eax, dword ptr ss:[ebp-4]       ;tem的值 以前b1的值 b的地址
mov     dword ptr ds:[edx], eax         ;a1的值 現在就是b的地址呢。

 

今天淘寶的書到了。晚上回家。就有書看了。呵呵。

posted on 2007-08-09 17:57 冬天的林 閱讀(868) 評論(7)  編輯 收藏 引用 所屬分類: C++基礎

評論

# re: 基本概念:函數的傳值(4)  回復  更多評論   

void fun3(int *a, int *b){
int* tem = b;
b = a;
a = tem;
}

int a = 1;
int b = 2;
int *a1 = &a;
int *b1 = &b;
fun3(a1,b1);

和fun2功能一樣吧。
fun2我真還理解進去。
2007-08-09 20:19 | pass86

# re: 基本概念:函數的傳值(4)  回復  更多評論   

不知道大哥。運行過fun3沒?看過結果沒?
2007-08-09 21:11 | 冬天的林

# re: 基本概念:函數的傳值(4)  回復  更多評論   

這樣的文章建議發在新手區!
2007-08-09 21:53 | dudu

# re: 基本概念:函數的傳值(4)  回復  更多評論   

這個似乎問題確實是出乎意料,我做了測試,fun3沒有改變指針值,GOOD。
//測試代碼
#include <iostream>
using namespace std;
void fun1(int*& a, int*& b)
{
int* tem = b;
b = a;
a = tem;
}

void fun2(int* a, int* b)
{
int tem = *b;
*b = *a;
*a = tem;
}
void fun3(int* a, int* b)
{
int* tem = b;
b = a;
a = tem;
}

int main()
{
{
int a = 1;
int b = 2;
int* a1 = &a;
int* b1 = &b;
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
fun1(a1, b1);
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
}
{
int a = 1;
int b = 2;
int* a1 = &a;
int* b1 = &b;
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
fun2(a1, b1);
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
}
{
int a = 1;
int b = 2;
int* a1 = &a;
int* b1 = &b;
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
fun3(a1, b1);
cout << a << ", " << b << endl;
cout << a1 << ", " << b1 << endl;
}

return 0;
}
//測試結果:
1, 2
0x22ff74, 0x22ff70
1, 2
0x22ff70, 0x22ff74
1, 2
0x22ff68, 0x22ff6c
2, 1
0x22ff68, 0x22ff6c
1, 2
0x22ff68, 0x22ff6c
1, 2
0x22ff68, 0x22ff6c
2007-08-09 22:59 | pass86

# re: 基本概念:函數的傳值(4)  回復  更多評論   

好的。

@dudu
2007-08-10 09:09 | 冬天的林

# re: 基本概念:函數的傳值(4)  回復  更多評論   

@pass86

呵呵。謝謝關注。
2007-08-10 09:10 | 冬天的林

# re: 基本概念:函數的傳值(4)  回復  更多評論   

暴汗,還有人這么玩!==!
2007-08-11 14:38 | XTSHMF
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲高清久久| 一区二区高清视频在线观看| 中国成人亚色综合网站| 欧美日韩精品一区二区天天拍小说| 91久久精品国产91性色tv| 欧美成人国产va精品日本一级| 久久久久久久激情视频| 亚洲国产老妈| av成人手机在线| 国产精品久久久久久久久| 欧美一区激情视频在线观看| 午夜日韩视频| 91久久久久久久久| 亚洲美女毛片| 国产视频亚洲| 亚洲国产高清高潮精品美女| 欧美色图五月天| 久久精品99国产精品酒店日本| 久久av资源网| 日韩午夜激情| 亚洲一区中文| 亚洲欧洲精品一区二区三区不卡| 99精品免费视频| 国精品一区二区三区| 亚洲国产精品综合| 国产精品一级| 欧美黄色成人网| 国产精品日韩二区| 午夜精品久久久久久久蜜桃app| 在线成人av.com| 欧美在线综合| 日韩视频免费在线观看| 亚洲午夜激情网站| 亚洲国产精品久久久久秋霞影院| 日韩一区二区电影网| 影音欧美亚洲| 亚洲欧美精品suv| 亚洲精选91| 久久精品日产第一区二区三区| 9人人澡人人爽人人精品| 欧美在线综合视频| 亚洲一区制服诱惑| 欧美成人精品高清在线播放| 欧美中文字幕| 国产精品电影在线观看| 亚洲电影在线| 激情视频一区| 亚洲在线免费视频| 亚洲一区二区精品在线| 欧美福利在线| 蘑菇福利视频一区播放| 国产精品综合视频| 一区二区高清视频| 99国产精品私拍| 欧美激情无毛| 亚洲第一中文字幕在线观看| 国模私拍一区二区三区| 亚洲欧洲av一区二区| 亚洲资源av| 国产精品高潮粉嫩av| 日韩网站免费观看| 一区二区三区欧美亚洲| 欧美大片18| 亚洲国产天堂久久综合| 亚洲乱亚洲高清| 欧美激情在线观看| 亚洲国产视频直播| 一区二区三区高清| 欧美日韩国产免费| 一本色道久久综合亚洲精品不卡| av不卡在线| 国产精品久久| 亚洲欧美欧美一区二区三区| 午夜久久电影网| 国产午夜精品麻豆| 久久se精品一区精品二区| 久久久久久国产精品一区| 国产在线乱码一区二区三区| 久久精品亚洲一区二区三区浴池| 久久久国产亚洲精品| 影音先锋久久久| 欧美电影在线免费观看网站| 亚洲片在线观看| 亚洲欧美成人一区二区三区| 国产精品综合av一区二区国产馆| 午夜国产不卡在线观看视频| 久久综合久久久| 亚洲精选大片| 国产精品美女xx| 久久久久久**毛片大全| 亚洲福利视频在线| 亚洲欧美日韩中文播放| 国模私拍一区二区三区| 免费在线一区二区| 亚洲一级特黄| 免费人成精品欧美精品| 中国成人黄色视屏| 激情欧美亚洲| 欧美色另类天堂2015| 欧美综合激情网| 亚洲免费观看在线观看| 久久高清国产| 一本久道综合久久精品| 国产色产综合产在线视频| 欧美成人亚洲| 欧美影院在线播放| 亚洲人成久久| 久久亚洲视频| 亚洲淫片在线视频| 亚洲国产欧美日韩另类综合| 欧美性事免费在线观看| 免费观看日韩| 亚洲欧美日韩国产一区二区| 亚洲国产精品久久91精品| 欧美诱惑福利视频| 亚洲视频网在线直播| 韩国一区二区在线观看| 国产精品激情av在线播放| 欧美成黄导航| 久久久国产一区二区三区| 亚洲午夜在线观看视频在线| 亚洲国产一区二区精品专区| 久久理论片午夜琪琪电影网| 亚洲在线国产日韩欧美| 亚洲精品偷拍| 亚洲国产精品一区二区www| 国产午夜精品美女视频明星a级| 欧美日韩高清在线| 欧美大片在线看| 久久综合久久久| 久久久久久久尹人综合网亚洲 | 国产精品欧美久久久久无广告| 美女视频一区免费观看| 欧美一区二区精品久久911| 亚洲午夜小视频| 在线天堂一区av电影| 日韩一级精品| 一本色道**综合亚洲精品蜜桃冫 | 一本大道av伊人久久综合| 欧美高清视频| 麻豆精品视频在线观看| 久久久久久久97| 久久亚洲一区| 美女国产一区| 欧美激情精品久久久久久黑人| 乱码第一页成人| 欧美+日本+国产+在线a∨观看| 蜜桃av综合| 欧美顶级少妇做爰| 亚洲高清自拍| 日韩亚洲国产精品| 一区二区三区视频在线看 | 久久www成人_看片免费不卡| 亚洲欧美亚洲| 久久久九九九九| 久久中文字幕一区| 欧美丰满高潮xxxx喷水动漫| 欧美成人自拍视频| 亚洲精品综合在线| 一区二区日本视频| 亚洲欧美日韩网| 久久理论片午夜琪琪电影网| 久久综合九色综合久99| 欧美女激情福利| 国产日本亚洲高清| 尤物视频一区二区| 99亚洲一区二区| 欧美一区二区三区四区在线观看| 久久九九免费视频| 亚洲二区在线观看| 亚洲性xxxx| 久久综合成人精品亚洲另类欧美 | 久久精品中文字幕免费mv| 蜜桃av久久久亚洲精品| 欧美日韩亚洲系列| 国内视频一区| 一本色道精品久久一区二区三区 | 久久久久一区| 91久久精品日日躁夜夜躁国产| 亚洲视频中文| 久久综合给合久久狠狠狠97色69| 欧美日韩一区二区三区四区在线观看 | 国产亚洲综合精品| 91久久精品一区| 性色av一区二区三区| 欧美成人首页| 亚洲免费一在线| 欧美激情 亚洲a∨综合| 国产日韩一区二区| 一区二区三区高清| 免费亚洲一区| 亚洲欧美日韩国产成人| 欧美精品一区二区三区蜜臀| 国产日韩精品久久| 一区二区三区日韩欧美精品| 久久一二三区| 午夜精品久久一牛影视| 欧美三级韩国三级日本三斤| 亚洲成色www8888| 久久aⅴ国产欧美74aaa|