日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言*运算符和运算符

發布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言*运算符和运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

取址運算符&用來取得其操作數的地址。如果操作數 x 的類型為 T,則表達式 &x 的類型是 T 類型指針(指向 T 的指針)。

取址運算符的操作數必須是在內存中可尋址到的地址。換句話說,該運算符只能用于函數或對象(例如左值),而不可以用于位字段,以及那些還未被存儲類修飾符 register 聲明的內容。

當需要初始化指針,以指向某些對象或函數時,需要獲得這些對象或函數的地址:

float?x,?*ptr;ptr?=?&x;??????????? //?合法:使得指針ptr指向xptr?=?&(x+1);??????? //?錯誤:?(x+1)?不是一個左值

相反地,當已具有一個指針,并且希望獲取它所引用的對象時,使用間接運算符 *(indirection operator),有時候這會被稱為解引用運算符(dereferencing operator)。它的操作數必須是指針類型。如果 ptr 是指針,那么 *ptr 就是 ptr 所指向的對象或函數。如果 ptr 是一個對象指針,那么 *ptr 就是一個左值,可以把它(即 *ptr)當作賦值運算符左邊的操作數:

float?x,?*ptr?=?&x;*ptr?=?1.7;???????????????????//?將1.7賦值給變量x++(*ptr);??????????????????????????????????//?并將變量x的值加1

在這個示例最后的語句中,ptr 的值保持不變,但 x 的值變成 2.7。

如果指針操作數的值不是某個對象或函數的地址,則間接運算符*的操作結果無法確定。

像其他一元操作數一樣,運算符 & 和 * 具有很高的優先級。操作數的組合方式是從右到左。因此,表達式 ++(*ptr)中的括號是沒有必要的。

運算符 & 和 * 是互補的:如果 x 是一個表達式,用于指定一個對象或一個函數,那么表達式 *&x 就等于 x。相反地,在形如 &*ptr 的表達式中,這些運算符會互相抵消,表達式的類型與值等效于 ptr。然而,不管 ptr 是不是左值,&*ptr 都一定不會是左值。

聲明:

本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

總結

以上是生活随笔為你收集整理的C语言*运算符和运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。