1.char類型的指針
char
*names[]={
"zhangsan"
,
"lisi"
,
"wangwu"
};//可以這樣初始化
這樣,每個指針指向對應的字符串
2.其他類型的指針
int
*nums[]={1,2,3,4,5};
//不可以這樣初始化
原因:指針的初始化或賦值可以使用0值、常量表達式、和類型匹配的對象 的地址。//指針需要用地址初始化
如上,字符串字面值常量類型爲const char *,與指針類型匹配,可賦值。
整形字面值常量可以爲int, long等類型,詳見《C++ Primer》第二章2.2節。但給指針賦值應該是地址,即&i,VS2010下編譯錯誤也會提示:不可將int 類型賦給int *類型。
3.
char *p1 = "12345"; //可以,含義爲定義一個char*形指針,並且初始化地址
但是int *p1=12345;//不可以
總結:字符串字面值常量類型爲const char *可以用來初始化指針。
整型常量的類型爲int,不可以用來初始化指針