九九热在线播放,久久?v无码αv高潮αv喷吹,精选国产一区二区,精品久久久无码中

C代碼交換a,b值的方式不一樣

請注意,為官方帳戶加注星標,不要錯過令人興奮的內容。

轉移自:嵌入式Hodgepodge交換a和b的值是學習C語言時非常常見的問題。

最常見的方法是引入一個中間變量作為中間介質來交換a和b的值。

代碼如下:void change_ab(int * a,int * b){int temp = 0; temp = * a; * a = * b; * b = temp;}注意,不能將其編寫為以下代碼:void change_ab(int a,Int b){int temp = 0; temp = a; a = b; b = temp;}普通變量的傳輸不會更改內存內容。

當使用普通變量作為參數時,它們實際上是在內存塊(堆棧空間)中眾信申請了一個空閑塊,而不是原始的內存塊,并且在調用該函數之后,新應用的內存塊將被系統回收。

由于變量的范圍無效。

如果將指針作為實際參數傳遞,即過去的內存地址被傳遞,則操作指針指向的內存塊將不可避免地更改內存的內容。

以上方法是最常用的方法。

因此,您知道如何在不使用任何其他中間變量的情況下交換a和b的值嗎?方法1:使用算術方法void change_ab(int * a,int * b){* a = * a + * b; * b = * a- * b; * a = * a- * b;}方法2:使用XOR方法void change_ab(int * a,int * b){* a = * a ^ * b; * b = * a ^ * b; * a = * a * b;}方法1具有潛力當形式參數的類型更改為無符號16位時,如果a和b的值較大,則該值a + b的值可能超出16位整數可以表示的范圍,從而導致編程操作錯誤。

第二種方法不存在此問題,這是一種更好的方法。

推薦閱讀:C ++中的字符編碼轉換教您如何使用STM32Trust生成加密的固件。

ELF與十六進制和Bin文件格式有什么區別?關注微信公眾號“ strongerHuang”,回復“ 1024”。

在后臺查看更多內容,請在“按照規定加入技術交流小組。

長按以跟隨圖片中包含的官方帳戶。

免責聲明:本文內容經21ic授權后發布,版權歸原作者所有。

該平臺僅提供信息存儲服務。

本文僅代表作者個人觀點,不代表本平臺的立場,如有任何疑問,請與我們聯系,謝謝!

主站蜘蛛池模板: 德昌县| 政和县| 龙门县| 任丘市| 大城县| 田阳县| 巴楚县| 嘉荫县| 西和县| 凤山县| 萨嘎县| 安顺市| 丰原市| 四川省| 岐山县| 临朐县| 岫岩| 临沧市| 蓝田县| 葫芦岛市| 新化县| 石嘴山市| 常熟市| 五华县| 灵山县| 闻喜县| 剑河县| 镇坪县| 界首市| 郧西县| 阳东县| 天等县| 额济纳旗| 宾川县| 平利县| 宜春市| 临桂县| 安西县| 洛隆县| 邢台市| 元阳县|