2011-01-27 128 views
1

當我試圖編譯下面的C++程序:C++指針錯誤

//Source: C++ How To Program, Sixth Edition 
#include <iostream> 
int main() 
{ 
int a; 
int *aPtr; 
a=7; 
aPtr=&a; 
std::cout<<"The address of a is: "<<&a<<std::endl; 
std::cout<<"The value of aPtr is: "<<aPtr<<std::endl; 
std::cout<<"The value of a is: "<<a<<std::endl; 
std::cout<<"The value of *aPtr is: "<<*aPtr<<std::endl; 
std::cout<<"Showing that * and & are inverses of each" 
<<" other"<<std::endl; 
std::cout<<"&*aPtr= "<<&*aPtr<<std::endl; 
std::cout<<"*&aPtr= "<<*&aPtr<std::endl; 
return 0; 
} 

我得到了以下錯誤:

enter image description here

上任何想法?

謝謝。

+0

該錯誤不會出現。 – sergiom 2011-01-27 11:03:30

回答

6

在你的代碼替換

std::cout<<"*&aPtr= "<<*&aPtr<std::endl; 

通過

std::cout<<"*&aPtr= "<<*&aPtr<<std::endl; 

只是一個語法錯誤(<而不是<<)。

3

第15行說*&aPtr < std::endl。應該是<<而不是<

如果你在操作員和操作員之間放置空間,你會更容易發現這種錯誤。

3

它看起來像在15行一個簡單的拼寫錯誤您APTR和ENDL常數之間忘記了一個「<」)

std::cout<<"*&aPtr= "<<*&aPtr<std::endl;

3

你錯過了最後一行<

//----------------------------v here. 
std::cout<<"*&aPtr= "<<*&aPtr<<std::endl; 
3

是的,第15行的拼寫錯誤,你寫了<而不是<<。錯誤消息使得這個非常清楚!

2

修復這個行(語法錯誤)(<<代替<

std::cout<<"*&aPtr= "<<*&aPtr<std::endl;