C 之函式體 通過指標引用

2021-09-29 17:11:35 字數 3489 閱讀 6872

使用陣列作為函式的引數,在c++之函式體那裡已經講了通過普通的方法將陣列作為引數,引入到函式中。這裡介紹使用指標的方法將陣列作為引數

單個的數需要加&表示指標變數儲存的是變數位址

特別強調:指標一定慎用(*ptr_num)++,會改變指標所指向數的數值,使用指標最好配合const禁止數值被修改!!!

#include

#include

"class1demo.hpp"

using

namespace std;

//宣告函式

void

sum2

(int*,

int*);

intmain()

//定義函式

void

sum2

(int

* ptr_num1,

int* ptr_num2)

//程式輸出

30

process returned 0

(0x0

) execution time :

0.160 s

press any key to continue

.

指標指向陣列是,不用加&,預設指向陣列第乙個元素

//1、標頭檔案constdemo.h

#ifndef constdemo_h_included

#define constdemo_h_included

#include

using

namespace std;

#endif

// constdemo_h_included

void

show_ptr

(int*,

int)

;//宣告函式,陣列指標,第二個元素作為陣列長度

void

show_ptr

(int

* value_ptr,

int len)

//定義函式體

}

//2、主檔案main.cpp

#include

#include

#include

"headdemo.h"

#include

"constdemo.h"

//引入上面標頭檔案,用過雙引號引用

using

namespace std;

intmain()

;int len =

sizeof

(values)

/sizeof

(int);

//陣列長度

show_ptr

(values,len)

;return0;

}

//程式輸出

123

45process returned 0

(0x0

) execution time :

0.063 s

press any key to continue

.

#ifndef constdemo_h_included

#define constdemo_h_included

#include

using

namespace std;

#endif

// constdemo_h_included

//方法二

void

show_ptr2

(int*,

int*);

//宣告函式

void

show_ptr2

(int

* value_ptr_start,

int* value_ptr_end)

//定義函式,傳入的形參為指標

}

//2、主檔案main.cpp

#include

#include

#include

"headdemo.h"

#include

"constdemo.h"

//引入上面標頭檔案,用過雙引號引用

using

namespace std;

intmain()

;int len =

sizeof

(values)

/sizeof

(int);

//show_ptr(values,len);

show_ptr2

(values, values + len -1)

;//穿入首指標和尾指標

return0;

}

//程式輸出

123

45process returned 0

(0x0

) execution time :

0.167 s

press any key to continue

.

#ifndef constdemo_h_included

#define constdemo_h_included

#include

using

namespace std;

#endif

// constdemo_h_included

void

show_ptr2

(int*,

int)

;//宣告二維陣列函式

void

show_ptr2

(int

(*value_ptr)[4

],int len)

//定義二維陣列函式,這裡傳入的指標維數要進行改變

cout << endl;

}}

//2、主檔案main.cpp

#include

#include

#include

"headdemo.h"

#include

"constdemo.h"

//引入上面標頭檔案,用過雙引號引用

using

namespace std;

intmain()

//程式輸出

131264

13645600

0000

0000

process returned 0

(0x0

) execution time :

0.102 s

press any key to continue

.

通過指標引用虛函式

下面這個例子從多個角度來找到虛函式的指標,並對其進行呼叫 方法一 定義乙個物件找到物件中存放的虛函式所在表的頭指標,並將其第乙個指標作為我們呼叫的函式指標 方法二 直接通過二級指標找到函式指標 include include cout hex include setw using namespace...

通過指標引用陣列

為了說清楚什麼是指標,必須先弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。編譯系統根據程式中定義的變數型別,分配一定長度的空間。例如,visual c 為整型變數分配4個位元組,對單精度浮點型變數分配4個位元組。記...

c 函式指標引用問題

定義了乙個名字叫p的函式,它接收兩個int型別的引數和乙個指向int的指標 位址 引數,並返回乙個int引數 定義了乙個名字為p的指標 位址 它所指向的函式名字可以用 p表示,該函式接收兩個int型別的引數和乙個指向int的指標 位址 引數,並返回乙個int引數。此為指向int的指標 定義了乙個名字...