int num1 = 8; //okay
int *pointer; //okay
*pointer = &num1; //NOT okay, compiler says (Error:a value of type int* cannot be
//assigned to an entity of type "int")
int num2 = 8; //okay
int *pointer = &num2; //okay
我很困惑,爲什麼第一部分給出了一個錯誤,第二部分犯規,他們看起來是一樣的我C++指針聲明和分配
將其更改爲'pointer =&num1',因爲'pointer'的類型是'int *',而'num1'的類型也是'int *'(而'* pointer'的類型是'int' )。 –
'*'和'&'具有不同的含義,具體取決於上下文。在一個聲明中,它們表示指針類型和引用類型,在表達式中它們是運算符的取消引用和地址 – bolov
'int * pointer = X;'表示:int *指針;指針= X;' –