函式,相當於把大的任務拆分成小的模組,一般乙個函式不超過80行
每個程式只有乙個主函式
輸出資料只能是乙個。有多個返回值的時候可以使用乙個引數
函式宣告:只寫函式頭,不寫函式體;
在函式宣告時,可以省略引數列表的引數名,只寫引數型別
傳值方式,在函式呼叫時,把實參值的乙份拷貝,賦值給形參;
可以寫乙個例子測試:
#include "stdafx.h"
void swap(int,int);
int main(int argc, char* argv)
void swap(int y,int z)
內聯函式:用被調函式的函式體**,替換掉函式呼叫語句。這個替換是在編譯期間發生。
好處:避免函式呼叫的時間開銷,提高執行效率。
代價:增加了記憶體的空間開銷。所以,內聯函式要盡量短小。
函式過載:兩個函式名字一樣,引數不一樣(引數個數不同、引數型別不同),成為函式過載。
重寫:在不同的類之間進行的
#include "stdafx.h"
int square(int);
float square(float);
int main(int argc, char* argv)
int square(int i)
float square(float j)
用%p來顯示這個位址
int a = 2;
int* p = &a;//指標的宣告
printf("p value is %p\n",p);
printf("a address is %p\n",&a);
*來寫入記憶體空間的值 *p = 8898; //a = 8898;
使用指標實現兩個數的交換
#include "stdafx.h"
int change(int *,int *);
int main(int argc, char* argv)
int change(int *x,int *y)
二級指標
#include "stdafx.h"
int *smaller(int *px,int *py);
int main(int argc, char* argv)
int *smaller(int *px,int *py)
**指標(指向的是同一位址,但是它們的位址分別不同)
int a=11;
int *p;
int **pp;
p = &a;
pp = &p;
printf("%p\n",a);
printf("%p\n",p);
printf("%p\n\n\n",pp);
printf("%p\n",a);
printf("%p\n",*p);
printf("%p\n",**pp);
2023年3月4日 《C語言筆記 函式指標》
一,函式指標的實質 1,函式指標的實質還是指標,還是指標變數。本身佔四個位元組 32位系統 2,函式指標 陣列指標 普通指標之間本身沒有區別,區別在於指標指向的東西是個什麼玩意。函式指標指向乙個函式,陣列指標指向乙個陣列。3,函式的實質是一段 這一段 在記憶體中是連續分布的 乙個函式的大括號括起來的...
《C語言筆記 函式指標》
一,函式指標的實質 1,函式指標的實質還是指標,還是指標變數。本身佔四個位元組 32位系統 2,函式指標 陣列指標 普通指標之間本身沒有區別,區別在於指標指向的東西是個什麼玩意。函式指標指向乙個函式,陣列指標指向乙個陣列。3,函式的實質是一段 這一段 在記憶體中是連續分布的 乙個函式的大括號括起來的...
C筆記系列三 函式指標
在程式鏈結過程中,所有函式都被安排空間,形成乙個可以執行的記憶體映像,每個函式程式設計乙個指令塊,有乙個相對固定的儲存位置,這個位置資訊被儲存在函式名中 即函式名儲存著函式的起始位置 所謂的函式呼叫,就是轉到這片指令所在看起始位置開始執行。函式指標,即儲存函式的起始位置,通過指標呼叫函式。函式指標的...