全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1027
推到 Plurk!
推到 Facebook!

請問語法for ( ch = RegPath; *ch; ++ch ) {

答題得分者是:ikk
washare
初階會員


發表:14
回覆:36
積分:35
註冊:2006-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-23 19:20:19 IP:219.68.xxx.xxx 訂閱
各位先進,因為只學過delphi,最近要參考一段c寫的程式碼,有幾處不是粉了解,還請各位先進協助說明一下

關於以下兩個變數的宣告,變數前的"*"號不知是什麼意思
char * ch; // * <--------------這個符號有什麼特別意思嗎?而且跟ch之間還空一格
char *value = NULL; // * <--------------這個符號跟value之間卻沒有空格,不知跟上面有什麼差別

另外就是它的回圈
//RegPath=HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\InProcServer32\(Default)
for ( ch = RegPath; *ch; ch ) { //我知道它是對RegPath字串逐一取出各個字元來處理,但因為不懂*ch在這裏是什麼意思,想請各位先進解釋一下,感謝。


// 以下為嫄程式碼的部份內容-----------------------------------------
void RegeditJump( HWND hWnd )
{

char * ch;
char *value = NULL;

// Open path
for ( ch = RegPath; *ch; ch ) {
if ( *ch == '\\' ) {
UINT vk = VK_RIGHT;
SendMessage( regeditHwnd, WM_KEYDOWN, vk, 0 );

} else {
UINT vk = toupper(*ch);

SendMessage( regeditHwnd, WM_CHAR, vk, 0 );
}
}

// If its a value select the value
if( value ) {
UINT vk = VK_HOME;
........

for ( ch = value; *ch; ch ) {
UINT vk = toupper(*ch);

SendMessage( regeditHwnd, WM_CHAR, vk, 0 );
}
}
ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-24 09:47:20 IP:163.28.xxx.xxx 訂閱
char * ch; //是宣告ch 是char 指標(point)
char *value = NULL; //至於有沒有空格, 並無差別, 在這邊是將value指標設為NULL.

*ch在迴圈中是用來判別, ch指標指向的內容是不是 0
*是0的話就跳出迴圈

------
FPGA驗證, FPGA開發平台, http://smims.com
washare
初階會員


發表:14
回覆:36
積分:35
註冊:2006-10-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-24 14:11:18 IP:219.68.xxx.xxx 訂閱
iKK大大,非常感謝!

了解了。謝謝
系統時間:2024-03-29 9:20:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!