問一個**的問題 |
尚未結案
|
kangbo
一般會員 發表:2 回覆:2 積分:0 註冊:2003-06-09 發送簡訊給我 |
對不起,我是VC 的初學者
想問一個問題 char a[2][2]={'1','2','3','4'};
char **p; 我想用p去指到a
應該如何寫? 通常**p這個會運用在什麼地方? double strtod ( const char * string, char** endptr );
像是這個function後面**endptr,不是用一個指標就可以嗎?爲何要要用** 還有我看有些書 char* p , char * p , char *p 是一樣的嗎? 不好意思,問了這麼多問題,還望高手指導一下,謝謝
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
引言: 對不起,我是VC 的初學者 想問一個問題 char a[2][2]={'1','2','3','4'}; char **p; 我想用p去指到a 應該如何寫? 通常**p這個會運用在什麼地方? 要將資料當成二維陣列存取時,常用這種形式。 double strtod ( const char * string, char** endptr ); 像是這個function後面**endptr,不是用一個指標就可以嗎?爲何要要用** 還有我看有些書 char* p , char * p , char *p 是一樣的嗎? 是的!變數名稱之前如有*,表示這是一個指標變數。 不好意思,問了這麼多問題,還望高手指導一下,謝謝有些東西比較難用文字詳細描述,所以請參考下列程式碼: //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { char* p, ptr_or_char, *ptr; char * p1; char *p2; char ch = 'A'; //ptr_or_char = &ch; // error! Because ptr_or_char is a char here. ptr = &ch; p = &ch; p1 = &ch; p2 = &ch; AnsiString msg; msg.cat_printf("p =X : *p ='%c'\n", p, *p ); msg.cat_printf("ptr=X : *ptr='%c'\n", ptr, *ptr); msg.cat_printf("p1 =X : *p1 ='%c'\n", p1, *p1 ); msg.cat_printf("p2 =X : *p2 ='%c'\n", p2, *p2 ); ShowMessage(msg); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { char a[2][2]={'1','2','3','4'}; char *p, **pp; /* char **pp; // equivalent to (char *) (*pp); pp是一個指標變數,可用來指向一個陣列的開始位址,且這個陣列中元素的型態為(char*)。 */ p = (char *) a[0]; // or (char *) a; or (char *) &a[0][0]; for (int k=0; k<4; k ) ShowMessage(p[k]); pp = new char *[2]; pp[0] = a[0]; // => "12" pp[1] = a[1]; // => "34" for (int k=0; k<2; k ) ShowMessage(pp[k][1]); delete [] pp; }RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |