C語言指針數組初始化

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,不可以用來初始化指針

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章