簡體   English   中英

這些指針初始化有什么問題

[英]What's wrong with these pointer initialization

char * a=0;
int * b=0;
cout<<a<<a+1;
cout<<b<<b+1;

它出什么問題了

初始化很好。 對NULL指針執行指針算術是錯誤的。

同樣, cout << (const char*)假定操作數是有效的C樣式字符串,而不是NULL指針。 如果要打印字符串的地址,而不是字符串本身,則需要強制轉換,因為char指針會受到特殊處理。

char* a = 0;
std::cout << static_cast<void*>(a);

您正在為指針的值分配空值(0),這意味着它們沒有引用有效的內存位置。

沒錯。

您對此代碼的期望可能出了問題。

暫無
暫無

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

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