intはint*に直接割り当てることはできません

693 ワード

c++でポインタ変数を定義する場合:int *a; int *a = 0;はすべて可能で、ポインタがメモリアドレスを指す変数であることを知っています.このような0 x 40234 bは理屈では16進数ですが、このような定義も可能です.int *a = 1;はどうせ数ですね.実際には間違いです.エラーは:error: invalid conversion from 'int' to 'int*' [-fpermissive] int *a = 1;です.これはどういう意味ですか.intはint*に割り当てられません.これは何ですか.intとint*にはどんな違いがありますか.すべて整数ですね.どうして間違っていますか.いろいろ調べた結果、char b = 10;# string b = 10;# charもstringも文字ですね.でも、これではだめです.要するに、int*とstringは直接値を割り当てることができません.なぜなら、それらはタイプだからです.何がタイプですか.例えば、class expのタイプをカスタマイズすると、exp b; exp b = 0;# exp b = 1;#