Re: [問題] 關於指標函數

看板C_and_CPP作者 (非天夜翔)時間14年前 (2010/11/14 13:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《vm6jp6rmp4 (Jun)》之銘言: : 想請教一下各位大大,最近在看一本C++的書,對於指標函數有點不是很了解, : 下面的程式中char *left(const char * str, int n) 這函數是代表回傳一個指標, : P是NEW出來的東西,然後main()函數中char *ps = left(sample, 4)這行可以解釋 : 成 left=p指向的內容字串 ,然後ps再指向left=p指向的內容字串嗎?對於指標函數 : 似乎又把我搞混了~~~如果有哪位大大能詳細解釋那是更好了! : #include<iostream> : using namespace std; : const int ArSize = 80; 參考網址 http://www.oopweb.com/CPP/Documents/FunctionPointers/Volume/CCPP/FPT/em_fpt.html http://tinyurl.com/us64s 上面的縮址 declare your funtion use ; 表示宣告 char* left(const char * str, int n = 1); ReturnType FunctionName(ArgumentList); 因此, 這並不是一個 function pointer. 如果真要宣告成 funtion pointer char (*left)(const char * str, int n = 1); ReturnType (*FunctionName)(ArgumentList); 這個例子是 宣告 回傳形態為 char 函數名稱為 left 參數串 為 const char *str, int n n 預設值為 1 的一個 function pointer : int main(void) : { : char sample[ArSize]; : cout << "Enter a string:\n"; : cin.get(sample,ArSize); : char *ps = left(sample, 4); : cout << ps << "\n"; : delete [] ps; : ps = left(sample); : cout << ps << "\n"; : system("PAUSE"); : return 0; : } implement your funtion use {} 表示實作 char* left(const char * str, int n) ReturnType FunctionName(ArgumentList) { : int i; : if(n < 0) : n = 0; : char * p = new char[n+1]; : for (i = 0; i < n && str[i]; i++) : p[i] = str[i]; : while (i <= n) : p[i++] = '\0'; : return p; } -- 渴望飛翔在自由中, 期望逃離這拘束的現實, 一切都讓他隨著而去, 獨自躲在黑暗空氣中, 舔舐被狠狠撕裂的傷口。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.29.8
文章代碼(AID): #1Ct-PynA (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
2
19
完整討論串 (本文為第 2 之 2 篇):
問題
2
19
文章代碼(AID): #1Ct-PynA (C_and_CPP)