重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
1,數(shù)組指針語法梳理
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),碭山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:碭山等地區(qū)。碭山做網(wǎng)站價(jià)格咨詢:18982081108
回顧,如何定義數(shù)組數(shù)據(jù)類型:
回顧,如何定義指針類型數(shù)組:
回顧,如何直接定義 一個(gè)指向數(shù)組類型的指針:
2,函數(shù)指針語法梳理
1)如何定義一個(gè)函數(shù)類型
2)如何定義一個(gè)函數(shù)指針類型
3)如何定義一個(gè)函數(shù)指針(指向一個(gè)函數(shù)的入口地址)
【中級(jí)程序員 轉(zhuǎn) 高級(jí)程序員的 必經(jīng)之路】
1,函數(shù)類型做函數(shù)的參數(shù)
把函數(shù)的入口地址傳過來,奇怪的效果:【多態(tài)就是這樣】
函數(shù)指針 做 函數(shù)參數(shù) 思想剖析
1,數(shù)組指針語法梳理
回顧,如何定義數(shù)組數(shù)據(jù)類型:
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int main() { typedef int (arr) [5]; //定義一種數(shù)據(jù)類型 arr myarr; //用數(shù)據(jù)類型,定義變量 myarr[3] = 10; //使用 cout << myarr[3] << endl; int a[5]; //等同于這樣寫 return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run 10 chunli@http://990487026.blog.51cto.com~/c++$
回顧,如何定義指針類型數(shù)組:
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int main() { typedef int (*arr) [10]; //定義一種數(shù)據(jù)類型 arr my_arr; //用數(shù)據(jù)類型申明一個(gè)變量 int a[10]; //常規(guī)的數(shù)組 my_arr = &a; //區(qū)地址給我 (*my_arr)[0] = 9999; cout << *((*my_arr) +0) << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run 9999 chunli@http://990487026.blog.51cto.com~/c++$
回顧,如何直接定義 一個(gè)指向數(shù)組類型的指針:
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int main() { int arr[10]; int (*p)[10]; p = &arr; (*p)[2] = 10; cout << *(*(p) + 2)<< endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run 10 chunli@http://990487026.blog.51cto.com~/c++$
2,函數(shù)指針語法梳理
1)如何定義一個(gè)函數(shù)類型
2)如何定義一個(gè)函數(shù)指針類型
3)如何定義一個(gè)函數(shù)指針(指向一個(gè)函數(shù)的入口地址)
1,函數(shù)的基本調(diào)用:
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int add(int a,int b) { return a + b; } int main() { int sum = add(1,2); //函數(shù)名,就是函數(shù)的入口地址 cout << sum < 1)如何定義一個(gè)函數(shù)類型
使用函數(shù)指針,間接調(diào)用函數(shù)
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int add(int a,int b) { return a + b; } int main() { typedef int (fun)(int a,int b); //定義一種fun的函數(shù)類型 fun *p = NULL; //定義一個(gè)變量 p = &add; //把返回值,參數(shù)類型完全一樣的函數(shù)地址,給我 p = add; //這樣寫,兼容C歷史 int sum = p(1,6); cout << sum < 2)如何定義一個(gè)函數(shù)指針類型
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int add(int a,int b) { return a + b; } int main() { typedef int (*fun)(int a,int b);//定義一種fun的函數(shù)類型 fun p = NULL; //定義一個(gè)變量 p = add; //這樣寫,兼容C歷史 int sum = p(1,6); cout << sum < 3)如何定義一個(gè)函數(shù)指針(指向一個(gè)函數(shù)的入口地址)
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; int add(int a,int b) { return a + b; } int main() { int (*fun)(int a,int b); //定義一個(gè)變量 fun = add; int sum = fun(1,6); cout << sum < 【中級(jí)程序員 轉(zhuǎn) 高級(jí)程序員的 必經(jīng)之路】
1,函數(shù)類型做函數(shù)的參數(shù)
準(zhǔn)備:
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; typedef int (*fun)(int a,int b); //定義一種數(shù)據(jù)類型 int add(int a,int b) { return a + b; } int main() { fun f = NULL; //使用數(shù)據(jù)類型,定義一個(gè)變量 f = &add; //給變變量賦值 cout << f(1,2) << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run 3 chunli@http://990487026.blog.51cto.com~/c++$ chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; typedef int (*fun)(int a,int b); //定義一種數(shù)據(jù)類型 int add(int a,int b) { return a + b; } //下面的這兩種方式的是一樣的 int chunli_1(fun f) { return f(3,5); } int chunli_2( int (*fun)(int a,int b)) { return fun(2,3); } int main() { cout << chunli_1(add)<< endl; cout << chunli_2(add)<< endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ !g g++ -g -o run main.cpp && ./run 8 5 chunli@http://990487026.blog.51cto.com~/c++$ 把函數(shù)的入口地址傳過來,奇怪的效果:【多態(tài)就是這樣】
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp #includeusing namespace std; typedef int (*fun)(int a,int b); //定義一種數(shù)據(jù)類型 int add1(int a,int b) { cout << "add1 函數(shù)被調(diào)用 \n"; return a + b; } int add2(int a,int b) { cout << "add2 函數(shù)被調(diào)用 \n"; return a + b; } int add3(int a,int b) { cout << "add3 函數(shù)被調(diào)用\n"; return a + b; } int add4(int a,int b) { cout << "add4 函數(shù)被調(diào)用\n"; return a + b; } //下面的這兩種方式的是一樣的 int chunli_1(fun f) { return f(3,5); } int chunli_2( int (*fun)(int a,int b)) { return fun(2,3); } int main() { cout << chunli_1(add1)<< endl; cout << chunli_2(add2)<< endl; cout << chunli_2(add3)<< endl; cout << chunli_2(add4)<< endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run add1 函數(shù)被調(diào)用 8 add2 函數(shù)被調(diào)用 5 add3 函數(shù)被調(diào)用 5 add4 函數(shù)被調(diào)用 5 chunli@http://990487026.blog.51cto.com~/c++$ 函數(shù)指針 做 函數(shù)參數(shù) 思想剖析
文章名稱:C++基礎(chǔ)8【難】回顧:數(shù)組指針,函數(shù)指針,函數(shù)指針做函數(shù)參數(shù)C語言多態(tài)
本文URL:http://www.xueling.net.cn/article/jijoos.html