用函式實現交換變數值
敲黑板劃重點
用函式實現兩個數字內容的交換,你可能會這樣做:
void change_num(int a, int b) {
int tmp = a;
a = b;
b = tmp;
}
感覺太簡單了阿,然後呼叫函式,大功告成
結果發現,,,emmm,不對啊 內容沒有交換,瓦特???
這時再次仔細檢查分析程式碼
其實 a b 兩個形參只能算是實參的副本
交換了數值,僅僅是把副本的數值進行了交換,而本體卻沒有發生變化
因此該種方法行不通
此時利用另一種方法,利用指標變數
void change_num(int* a, int* b) {
int tmp = * a;
*a = *b;
*b = tmp;
}
傳入兩個引數分別為兩個數的地址,通過地址訪問地址內容,即實參值,將地址內容進行交換,這才能實現利用函式來交換兩個值的內容,然後就可以肆意的呼叫啦,哈哈!
相關推薦
用函式實現交換變數值
敲黑板劃重點 用函式實現兩個數字內容的交換,你可能會這樣做: void change_num(int a, int b) { int tmp = a; a = b; b = tmp; } 感覺太簡單了阿,然後呼叫函式,大功告成 結果發現,,,emmm,不對啊 內容沒有交換
JS用函式實現:輸入年,月,日,獲取這個日期是這一年的第多少天
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body>
No.18 程式碼練習:列印乘法口訣,交換變數值,判斷閏年,陣列操作
學習不易,需要堅持。 1.實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定, 輸入5,輸出55口訣表,輸入,輸出99的乘法口訣表。 2.使用函式實現兩個數的交換。 3.實現一個函式判斷year是不是潤年。 4.建立一個數組,實現函式init()初始化陣列、實現empt
用函式實現初始化陣列、 清空陣列、陣列元素的逆置
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void Empty(int arr[],int sz) { int i = 0; for (i = 0; i < sz
將n個數按輸入時順序的逆序排列,用函式實現(指標)
#include <stdio.h> void reverse(int a[],int n) { int *p; for(p=a+n-1;p>=a;p--) &nb
基於硬體的C(C++)語言程式設計教程12:用函式實現2數之和
本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。 開發環境:Atmel Studio 7.0 硬體平臺:Microch
C程式設計|用函式實現模組化程式設計詳解(一)
目錄 一、為什麼要用函式 使用函式可使程式清晰、精煉、簡單、靈活。 函式就是功能。每一個函式用來實現一個特定的功能。函式名應反映其代表的功能。 在設計
用函式實現二分查詢
問題及程式碼: #include <stdio.h> int binary_search(int arr[], int n, int k); #define SIZE 10 int main( ) { int d[SIZE] = {1,3,9,12,32
(C語言)用函式實現求三個數最大值
題目描述:從鍵盤輸入三個數,之後呼叫函式實現求三個數的最大值 程式碼實現: #include<stdio.h> int main() { int qmax(int a,int b,int c); //求最大值函式的宣告 int x,y,z; int max
C語言求一個整數的二進位制形式表示中1的個數,用函式實現
1:我們知道,整數在計算機中是以補碼的形式儲存的。如果給定一個十進位制正整數是 如何轉換成二進位制數的呢?用的是除以2取餘數的方法。若餘數為1,則1的個數加 1;然後用商再除以2取餘數,直到商為0;但是負數除2的餘數為負數。因此,可以
Excel中巧用函式對文字型數值求和
④簡單的解決方法:其實可以有更加簡便的辦法,日前在做一個Excel報表元件的時候發現:可以使用=SUMPRODUCT(BK8:BR36*1)完成對文字型數字的求和計算。推而廣之,我想文字型的數字應該也是可以參加其他運算的,甚至排序。
c語言 利用指標變數,用函式實現將3個整數按從大到小的順序輸出
利用指標變數,用函式實現將3個整數按從大到小的順序輸出。 解:程式: #include&l
Python-用函式實現9*9乘法口訣
1、 先用一般方法實現: for i in xrange(1,10): for j in xrange(1,i+1): print("%d*%d=%d\t" %(j,i,j
(2-2)python+selenium第二個自動化指令碼:用函式實現獲取貓眼電影中排名前100的
用函式實現:從貓眼電影的排行中,選出排名在前十頁的電影資訊,包括: 排名:1URL://ms0.meituan.net/mywww/image/loading_2.e3d934bf.png片名:霸王別姬
[日常練習] 4. 基於交換兩整形變數值的三種方法的C語言實現。
當面試題遇到:交換兩整形變數的值。你是感到無比的“慶幸”遇到這麼簡單的面試題,還是有一點“慌張”,怕是自己想的太簡單了吧!今天我們就來處理幾道小題,並且深入探討一下交換兩整形的3種C語言實現方法!當你再遇到這種問題的時候,你將一點都不慌!你,穩得一批! 練習題目: 1. 給定兩個整形
用巨集實現函式—1.寫一個巨集可以將一個數字的奇數位和偶數位交換 2.求兩個數中求較大值
交換奇數位和偶數位的方法: 1.奇數位與1偶數位與0得到奇數位 num&0101 0101 0101 0101 0101 0101 0101 0101 2.奇數位與0偶數位與1得到偶
C++分別用指標和引用實現交換函式
前幾天上課老師給出了一個課堂作業:請分別用指標和引用來實現兩個數的交換。雖然題目比較俗套,但是好久沒寫過C++程式了,依然很生疏,所以我決定總結一下自己的實現,程式粗糙,風格也混合著C,希望大家給提提建議。 老師出這個題目的目的無非是想讓我們聯絡
關於函式實現數值交換
#include <stdio.h> void swap0(int a ,int b) { printf(" a addr : %d , b addr: %d\n", &a , &b); int temp = a; a = b;
C用交換函式實現三個數排序
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void swap(int *m,int
關於Java 呼叫函式進行兩個變數值的交換
交換兩個變數的值,如果是基礎型別比如int, 直接進行交換: int aToSwap = 1; int bToSwap = 2; 一個經典的問題就是如果我有一個swap 方法如下,試問在主函式裡呼叫了這個swap 方法以後 ,從主函式裡傳入的兩個變數值交換了沒有? publ