&變數 代表 取變數的位址
*變數 代表 指標型的變數
取址運算子&用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 &x 的型別是 t 型別指標(指向 t 的指標)。
取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件(例如左值),而不可以用於位欄位,以及那些還未被儲存類修飾符 register 宣告的內容。
如果指標運算元的值不是某個物件或函式的位址,則間接運算子*的操作結果無法確定。
像其他一元運算元一樣,運算子 & 和 * 具有很高的優先順序。運算元的組合方式是從右到左。因此,表示式 ++(*ptr)中的括號是沒有必要的。
運算子 & 和 * 是互補的:如果 x 是乙個表示式,用於指定乙個物件或乙個函式,那麼表示式 *&x 就等於 x。相反地,在形如 &*ptr 的表示式中,這些運算子會互相抵消,表示式的型別與值等效於 ptr。然而,不管 ptr 是不是左值,&*ptr 都一定不會是左值。
C語言 運算子與 運算子
我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...
C 中 運算子 和 運算子
運算子定義在將可空型別分配給非可空型別時返回的預設值。int?c null 若 c 為 null,則 d 為 1,否則把 c 值賦予 d int d c 1 型別名稱後加問號,如 int?i null double?d null bool?b null 可指定可為 null 的 int double...
(運算子) 運算子
運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...