可能重複:
character pointers字符指針
難道不是'a'
被解碼爲它的ASCII碼值和下面的語句變成相當於char *pch= 197
。現在pch
將指向字符的地址位置197
char *pch='a'; //if not then what does this statement mean
可能重複:
character pointers字符指針
難道不是'a'
被解碼爲它的ASCII碼值和下面的語句變成相當於char *pch= 197
。現在pch
將指向字符的地址位置197
char *pch='a'; //if not then what does this statement mean
此語句將無法編譯char *pch='a';
。您正試圖將ascii字符'a'指定給char!
您是不是要找char *pch="a";
爲什麼你要訪問的位置197. 在大多數PC到0頁面的任何訪問提高內存衝突。
+1'char * pch =「a」;'有意義 – 2011-03-08 11:43:49
@sarnold:它在C中編譯,但問題標記爲C++,而在C++中這是一個錯誤。 – 2011-03-08 11:48:13
@sarnold:不,它*不*:http://ideone.com/etzze – rubenvb 2011-03-08 11:48:22
這行不應該編譯,至少在C++中。
在這一行中,您創建了一個指向名稱爲'pch'的字符(char *)的指針。然後,您嘗試將其初始化爲字符'a' - 這是不可能的,因爲指針只能用某個對象的地址或空指針(0)初始化。
我認爲在C中它也是非法的,但我不確定它。
如果你想設置的PCH變量指向的位置地址197下,你可以嘗試以下之一:
char *pch = (char *) 197;
char *pch = reinterpret_cast<char*>(197); // C++ only
它初始化一個指針,但它不會讓你走得很遠,因爲地址197處的內存不太可能成爲程序的一部分。不要在家裏試試這個孩子! – 2011-03-08 17:31:30
基本上,
你存儲一個char在C中無效的指針中。
指針應該保存其類型的地址。 但不是它的類型的值。
什麼是197?內存地址?這個地址是否屬於該程序? – Nawaz 2011-03-08 11:41:39
我懷疑是否將它作爲確切的重複或不是真正的問題關閉它。如果在'重複'中有某些你不明白的地方,請提供一個合理的問題。這就像是一個聲明。 – 2011-03-08 12:26:31