在c ++中指向int的指针

Yod*_*oda 2 c++ error-handling pointers

有什么问题:我只想指向int并将该int值赋予0.

    int* p;int* q;

*p = 0; *q = 0;
cout<<"p = "<<*p<<" q = "<<*q<<endl;
Run Code Online (Sandbox Code Playgroud)

这很烦人

作品:

int* p;
   *p = 0;

   cout<<*p<<endl;
Run Code Online (Sandbox Code Playgroud)

崩溃:

     int* p;
   int* q;
   *p = 0;
   *q = 0;

   cout<<*p<<endl;
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 14

WORKS:

int* p;
*p = 0;
Run Code Online (Sandbox Code Playgroud)

不!它似乎有效,但实际上是未定义的行为.

声明会int* whatever;留下未初始化的指针.你无法取消引用它.

要初始化指针并将其指向的值设置为0(在您的情况下):

int* p = new int(0);
Run Code Online (Sandbox Code Playgroud)


Pet*_*ker 5

要使用指针,该指针必须指向某个东西.所以有两个步骤:创建指针,并创建它指向的东西.

int *p, *q;    // create two pointers
int a;         // create something to point to
p = &a;        // make p point to a
*p = 0;        // set a to 0
q = new int;   // make q point to allocated memory
*q = 0;        // set allocated memory to 0
Run Code Online (Sandbox Code Playgroud)