11.18關於指標的第一次操作

來源:互聯網
上載者:User

是這樣的一個問題,老師讓我們寫一個簡單的交換程式,在意識到三步異或可以實現交換這個兩值交換。於是我想到在main函數外定義一個簡單的函數實現函數調用然後實現功能

一開始是這樣的:

swap(int a,int b)

{

a=a^b;

b=a^b;

a=a^b;

}

但是調用之後發現並沒有真正改變main 函數裡面的a和b的值,它只是用的main函數裡的值的副本,那如何解決這個問題呢?

解決方案如下:

一:

main()

{

       int  a=1,b=2;

       swap(&a,&b);

}

swap(int *a,int *b)

{

*a=*a^*b;//可以舉個簡單的例子如:0000 0001和0000 0010之間實現異或就可以實現兩個值得傳遞

*b=*a^*b;

*a=*a^*b;

}

二:

使用中間變數也是可以的,但是這個確實比較古老了,我們還是要爭取天天向上,爭取寫出高品質的程式!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.