[英]Why cout statement is not executing in passing pointer to function?
[英]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.