C言語--ポインタは一般的にいつメモリ領域を申請する必要がありますか?

582 ワード

1.ポインタが指すアドレスにデータを格納する必要がある場合は申請スペースが必要です.
int *q;アドレスのみでメモリ容量がありません.このアドレスはランダムアドレスです.
(1)メモリ領域が申請されていません:
int *q;
*q = 1;
cout<

エラー!ポインタ変数qには空間がなく,直接データを格納できない.
(2)メモリ領域の申請:
int *q = new int;
*q = 1;
cout<

正しくは、データを格納する前にポインタ変数にintタイプサイズのスタックメモリ領域を申請しました.
2.比較:
int *q;
*q = 1;

エラー!qメモリ空間を指していないため、直接データを格納することはできません.
int *q, a = 1;
q = &a;

正しくて、2回qのアドレスが違います.q=&a:qは変数aが存在するメモリ空間を指し、変数aはint型であり、メモリにはint型のメモリ空間がある.間接的にqに空間を割り当てたのだろう.