在我看來 有許多計算問題如果通過函式呼叫方式來解決就會使得**整體看起來簡介又便於識別
但是在呼叫函式時候要注意以下幾個問題
一、基本功能
1、函式呼叫,即把函式的輸入值填進函式名後面的括號中,不需要註明函式型別
interchange(x, y);//無返回值
x = interchange(x, y);//返回值為 x
2、定義函式,此處重點注意:
1):無返回值時:
void interchange(int u, int v)
2):有返回值時:
double interchange(int u, int v) //double 為返回值型別
3、函式宣告:重點:後面帶有分號
void interchange(int u, int v); //無返回值
double interchange(int u, int v); //有返回值
但是上述方法要麼沒有返回值 , 要麼只能有乙個返回值(因為定義函式內部 return *** 只能跟乙個值,並且如果沒有返回值,函式內部對值的計算和改變就不能影響到原來函式內部的值)
二、指標方法改變原來函式值
1、首先了解指標:指標(pointer)是乙個值為記憶體位址的變數
ptr = &booh; // ptr 就是指標,儲存的是 booh 的位址
nurse = 22;
ptr = &nurse; // 指向nurse的指標
val = *ptr; //將 ptr 位址上的值 22 賦給 val
3):列印指標,即列印變數儲存位置 %p
printf("%p\n",ptr); // 列印指標 ptr
4):指標在函式中的使用(交換函式問題具體**):
#includevoid interchange(int * u, int * v); //函式宣告
int main(void)
void interchange(int * u, int * v) //函式定義 * 作用是讀取 後面位址中的變數的值 所以 此處傳進來的是兩個int 型別的值
c 常見問題 1
1.在c 程式中呼叫被c 編譯器編譯後的函式,為什麼要加extern c 答 c 語言支援函式過載,c 語言不支援函式過載。函式被c 編譯後在庫中的名字與c 語言的不同。假設某個函式的原型為 void foo int x,int y 該函式被c 編譯器編譯後在庫中的名字為 foo 而c 編譯器則會產...
C語言常見問題
在c語言中,有乙個 流 的概念 流可以分為兩種型別 文字流 檔案 和二進位製流 檔案 文字流是解釋性的,最長可達255個字元 二進位製流是非解釋性的,一次處理乙個字元。在用c語言程式設計的時候,我們都是用 include指令包含型別為 h 的檔案,那麼可以用該指令包含型別不為 h 的檔案嗎?答案是 ...
C語言常見問題
1 嵌入式與微控制器的區別 從軟體上,行業裡經常把晶元中不帶mmu memory management unit記憶體管理單元 從而不支援虛擬位址,只能裸奔或執行rtos 實時作業系統,例如ucos 華為liteos rt thread freertos 的system,叫做微控制器 例如stm32...