簡體   English   中英

為什么指針初始化后 cout 語句不起作用?

[英]why cout statement is not working after pointer initialization?

cout 語句在指針初始化后不起作用。 這段代碼給了我一個分段錯誤。

#include <iostream>
using namespace std;
int main()
{
  int *p;
  *p=12;

  cout<<"NOW THIS STATEMENT WILL NOT WORK";//BUT WHY?
  cout<<*p;
  return 0;
}

您沒有初始化指針:

int *p;

p指向“無處”,它沒有被初始化,它的值是不確定的。 當您在下一行取消引用它時:

*p=12;

您會導致未定義的行為,因為p不指向int 沒有int可以存儲12的地方。

如果你想在某個地方存儲一個int ,你需要一個int而不僅僅是一個指向int的指針:

int x = 0;
int *p = &x;
*p=12;       // same as x = 12;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM