c語言指向運算符
❶ c語言中運算符有哪幾種,優先順序順序是怎樣
C語言中,運算符除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符。
運算符的運算優先順序共分為15 級,1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。
一級運算符:標識,常量,字元串文字量,優先順序提升表達式最優先執行。
二級運算符:數組下標運算(expression)、函數調用(argument-expression-list)、成員訪問(identifier、-> identifier)、後綴自增(i++)、後綴自減(i--)、復合初始化(initializer-list)。
三級運算符:前綴自增(++i)、前綴自減(--i)、單目轉型表式式(取地址& ,提領 * , 正號+ ,負號-、位反~ 邏輯否!)、求類型長度(sizeof unary-expression)。
四級運算符:強製表達式成為type-name指定的類型( type-name ) cast-expression。
五級運算符:「 * 」 乘法運算符。
六級運算符:「 + 」加法運算符。
七級運算符:<< 左移運算符;>> 右移運算符。
八級運算符:<、<=、>、>=關系運算符。
九級運算符:「 == 」等於運算符;「 != 」不等於運算符。
十級運算符:「 & 」按位與運算符。
十一級運算符:「 ∧ 」按位異或運算符。
十二級運算符:「 | 」按位或運算符。
十三級運算符:「&&」邏輯與運算符。
十四級運算符:「 || 」邏輯或運算符。
十五級運算符:? :條件運算符。
(1)c語言指向運算符擴展閱讀
C語言中各運算符的結合性:
1、左結合性(自左至右):
例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。
2、右結合性(自右至左)
自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
❷ C語言運算符中箭頭是什麼意思啊
->在C語言中,叫做指向結構體成員運算符,用處是使用一個指向結構體或對象的指針訪問其內成員。
一個指針當用來指向一個結構體、對象時,稱之為結構體指針或對象指針。結構體指針或對象指針中的值是所指向的結構體或對象的首地址。通過結構體指針或對象指針即可訪問該結構體或對象。
指向結構體成員運算符需要用到結構體關鍵字struct和C++類關鍵字class。結構體指針和對象指針定義的形式如下:
1、struct結構體類型名*指針名;
2、struct結構體類型名*指針名=&一個結構體的名字。
(2)c語言指向運算符擴展閱讀:
C語言中訪問結構體成員時 點 . 和 箭頭 -> 的區別
點(.)是用於結構體變數訪問成員,箭頭(->)是用於結構體指針訪問成員。
相同點:兩個都是二元操作符,其右操作符是成員的名稱。
不同點:點操作符左邊的操作數是一個「結果為結構」的表達式; 箭頭操作符左邊的操作數是一個指向結構的指針。
❸ C語言的指針運算符號
*稱為指針運算符(單目運算符),也稱取內容運算符。是用來表示指針變數和它所指向的變數直接的聯系。如果已經定義i_pointer為指針變數,則(*i_pointer)是i_pointer所指向的變數。其實*i_pointer也是一個變數,它和變數i是同一回事。下面兩個語句作用相同。 1、i=3; 2、*i_pointer=3; 第二個語句的含義是將3賦給指針變數i_pointer所指向的變數。 取地址運算符&,可以取得變數在內存中的地址。例如: pointer_1=&a; 表示把變數a的地址賦給pointer_1 * (*(a+1)+j)表示1行j列元素a[1][j]的值。 *(a+1)+j表示1行2列元素a[1][j]的地址。 這個沒有為什麼,就是規定的吧!
❹ C語言,指向結構體成員運算符是什麼意思
結構體主要成員運算符有"."和" -"多用於修改結構成員的值。以下是具體的例子struct date{ int year; int month; int day;};int main(int argc, char* argv[]){ char end; struct date today; struct date* pdate; pdate=&today; today.year=2011; today.month=2; today.day=1; printf("year = %d ",today.year); printf("month = %d ",today.month); printf("day = %d ",today.day); printf("year = %d ",pdate-year); printf("month = %d ",pdate-month); printf("day = %d ",pdate-day);}
❺ c語言指向運算符問題s->s<a[i].s 自己指向自己
名字一樣,但內容不同;
s->s 的意思是結構s中的變數s.
所以在程序中盡量給變數設置不同的名字,不然頭疼不僅是自己,還有別人.
❻ c語言運算符號的表示方法
1 算術運算符
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2.關系運算符
用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)
、小於等於(<=)和不等於(!=)六種。
3.邏輯運算符
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.位操作運算符
參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.賦值運算符
用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算符
這是一個三目運算符,用於條件求值(?:)。
7.逗號運算符
用於把若干表達式組合成一個表達式(,)。
8.指針運算符
用於取內容(*)和取地址(&)二種運算。
9.求位元組數運算符
用於計算數據類型所佔的位元組數(sizeof)。
10.特殊運算符
有括弧(),下標[],成員(→,.)等幾種。
優先順序1級 結合方向 左結合(自左至右)
( ) 圓括弧
[ ]下標運算符
-> 指向結構體成員運算符
. 結構體成員運算符(請注意它是一個實心圓點)
優先順序2級 結合方向 右結合(自右至左)單目運算符
! 邏輯非運算符
~ 按位取反運算符
++ 自增運算符
-- 自減運算符
-負號運算符
(類型) 類型轉換運算符
* 指針運算符
& 地址與運算符
sizeof 長度運算符
優先順序3級 結合方向 左結合 雙目運算符
* 乘法運算符
/ 除法運算符
% 取余運算符
優先順序4級 結合方向 左結合 雙目運算符
+ 加法運算符
- 減法運算符
優先順序5級 結合方向 左結合 雙目運算符
<< 左移運算符
>> 右移運算符
優先順序6級 結合方向 左結合 雙目運算符
<、<=、>、>= 關系運算符
優先順序7級 結合方向 左結合 雙目運算符
== 等於運算符 (判斷)
!= 不等於運算符(判斷)
優先順序8級 結合方向 左結合 雙目運算符
& 按位與運算符
優先順序9級 結合方向 左結合 雙目運算符
^ 按位異或運算符
優先順序10級 結合方向 左結合 雙目運算符
| 按位或運算符 舉例:0xfe|0xef 即為1111 1110 與1110 1111按位或運算則答案為:1111 1111 即0xff。
優先順序11級 結合方向 左結合 雙目運算符
&& 邏輯與運算符
優先順序12級 結合方向 左結合 雙目運算符
|| 邏輯或運算符
優先順序13級 結合方向 右結合 三目運算符
? : 條件運算符
優先順序14級 結合方向 右結合 雙目運算符
= 賦值運算符
+ = 加後賦值運算符 如s+=1表示s=s+1
- = 減後賦值運算符 如s-=1表示s=s-1
* = 乘後賦值運算符
/ = 除後賦值運算符
% = 取模後賦值運算符
< <= 左移後賦值運算符
>>=右移後賦值運算符
&= 按位與後賦值運算符
^=按位異或後賦值運算符
|= 按位或後賦值運算符
優先順序15級 結合方向 左結合
, 逗號運算符
❼ C語言的運算符的優先順序是什麼
1、最高級:出現同級別運算符時的結合方向是從左往右(下面級別沒寫結合順序時,默認是從左往右)。
( )圓括弧
[ ]下標運算符號
->指向結構體成員運算符
.結構體成員運算符
❽ c語言中有哪些運算符,各有什麼功能
1級優先順序
左結合
()
圓括弧
[]
下標運算符
->
指向結構體成員運算符
.
結構體成員運算符
++
後綴增量運算符
--
後綴增量運算符
2級優先順序
右結合
!
邏輯非運算符
~
按位取反運算符
++
前綴增量運算符
--
前綴增量運算符
-
負號運算符
(類型)
類型轉換運算符
*
指針運算符
&
地址與運算符
sizeof
長度運算符
3級優先順序
左結合
*
乘法運算符
/
除法運算符
%
取余運算符
4級優先順序
左結合
+
加法運算符
-
減法運算符
5級優先順序
左結合
<<
左移運算符
>>
右移運算符
6級優先順序
左結合
<、<=、>、>=
關系運算符
7級優先順序
左結合
==
等於運算符
!=
不等於運算符
8級優先順序
左結合
&
按位與運算符
9級優先順序
左結合
^
按位異或運算符
10級優先順序
左結合
|
按位或運算符
11級優先順序
左結合
&&
邏輯與運算符
12級優先順序
左結合
||
邏輯或運算符
13級優先順序
右結合
?
:
條件運算符
14級優先順序
右結合
=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
全為賦值運算符
15級優先順序
左結合
,
逗號運算符