C言語ポインタ配列初期化
845 ワード
1.charタイプのポインタ
2.その他のタイプのポインタ
理由:ポインタの初期化または付与には、0値、定数式、およびタイプが一致するオブジェクトのアドレスを使用できます.//ポインタはアドレスで初期化する必要があります.文字列の文字面値定数タイプはconst char*で、ポインタタイプと一致し、値を割り当てることができます.
整形字面定数はint,longなどのタイプであり,詳細は『C++Primer』第2章2.2節を参照する.ただし、ポインタに値を割り当てるのはアドレス、すなわち&iであるべきであり、VS 2010でコンパイルエラーが発生しても、intタイプをint*タイプに割り当ててはいけないというメッセージが表示されます.
3.
char *p1 = "12345";//はい、char*形ポインタを定義し、アドレスを初期化することを意味します.
ただしint*p 1=12345;//いけません
まとめ:文字列のフォント値定数タイプはconst char*でポインタを初期化できます.
整数定数のタイプはintで、ポインタを初期化するために使用できません.
char
*names[]={
"zhangsan"
,
"lisi"
,
"wangwu"
};//
,
2.その他のタイプのポインタ
int
*nums[]={1,2,3,4,5};
//このように初期化することはできません理由:ポインタの初期化または付与には、0値、定数式、およびタイプが一致するオブジェクトのアドレスを使用できます.//ポインタはアドレスで初期化する必要があります.文字列の文字面値定数タイプはconst char*で、ポインタタイプと一致し、値を割り当てることができます.
整形字面定数はint,longなどのタイプであり,詳細は『C++Primer』第2章2.2節を参照する.ただし、ポインタに値を割り当てるのはアドレス、すなわち&iであるべきであり、VS 2010でコンパイルエラーが発生しても、intタイプをint*タイプに割り当ててはいけないというメッセージが表示されます.
3.
char *p1 = "12345";//はい、char*形ポインタを定義し、アドレスを初期化することを意味します.
ただしint*p 1=12345;//いけません
まとめ:文字列のフォント値定数タイプはconst char*でポインタを初期化できます.
整数定数のタイプはintで、ポインタを初期化するために使用できません.