[英]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.