C語言函式呼叫常見問題 1

2021-09-08 05:47:56 字數 1212 閱讀 4533

在我看來 有許多計算問題如果通過函式呼叫方式來解決就會使得**整體看起來簡介又便於識別

但是在呼叫函式時候要注意以下幾個問題

一、基本功能

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...