學習過的c語言程式的資料型別和運算子有哪些

2021-03-06 23:23:29 字數 5849 閱讀 7064

1樓:匿名使用者

c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別

c語言的運算子包含的範圍很廣泛,共有34種運算子。c語言把括號、賦值、強制型別轉換等都作為運算子處理。

()、 、 -> 、 .、!、 ++、 -- 圓括號、方括號、指標、成員、邏輯非、自加、自減

++ 、 -- 、 * 、 & 、 ~ 、! 單目運算子

+、 - 、 sizeof、(cast)

* 、 / 、% 算術運算子

+ 、 - 算術運算子

<< 、 >> 位運算子

< 、 <= 、 > 、 >= 關係運算子

== 、!= 關係運算符號

& 位與

^ 位異或

| 位或

&& 邏輯與

|| 邏輯或

? 、: 條件運算子

/= 、%= 、 &= 、 |= 、 ^= 賦值運算子

= 、 += 、 -= 、 *= 、

, 順序運算子望採納

2樓:匿名使用者

我幫你捋順一下思路吧

c基礎 主要包括以下幾6大方面

資料型別

各種運算子

三種控制結構(順序 選擇 迴圈)

函式陣列

指標我當初和你一樣,也是自學的,其實並不難,我看的是夏老師,講的挺簡明易懂的,特別適合我這樣0基礎的,上面說的這些就是講的主要內容

c語言中可以進行位運算的資料型別有什麼?

3樓:匿名使用者

float 和double不可以,剩下的幾個都行

4樓:李

只能用於整型運算元,即char,short,int,long型別

c語言的運算子和表示式有哪些

5樓:育知同創教育

運算子的種類c語言的運算子可分為以下幾類:

1.算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6.條件運算子

這是乙個三目運算子,用於條件求值(?:)。

7.逗號運算子

用於把若干表示式組合成乙個表示式(,)。

8.指標運算子

用於取內容(*)和取位址(&)二種運算。

9.求位元組數運算子

用於計算資料型別所佔的位元組數(sizeof)。

10.特殊運算子

有括號(),下標,成員(→,.)等幾種。

優先順序和結合性

c語言中,運算子的運算優先順序共分為15級。1級最高,15級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。

而在乙個運算量兩側的運算子優先順序相同時, 則按運算子的結合性所規定的結合方向處理。 c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。

如有表示式x-y+z則y應先與「-」號結合, 執行x-y運算,然後再執行+z的運算。這種自左至右的結合方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。

最典型的右結合性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z再執行x=(y=z)運算。 c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

算術運算子和算術表示式基本的算術運算子

1.加法運算子「+」加法運算子為雙目運算子,即應有兩個量參與加法運算。如a+b,4+8等。具有右結合性。

2.減法運算子「-」減法運算子為雙目運算子。但「-」也可作負值運算子,此時為單目運算,如-x,-5等具有左結合性。

3.乘法運算子「*」雙目運算,具有左結合性。

4.除法運算子「/」雙目運算具有左結合性。參與運算量均為整型時, 結果也為整型,捨去小數。如果運算量中有乙個是實型,則結果為雙精度實型。

void main()

雙目運算具有左結合性。參與運算量均為整型時, 結果也為整型,捨去小數。如果運算量中有乙個是實型,則結果為雙精度實型。

printf("\n\n%d,%d\n",20/7,-20/7);

printf("%f,%f\n",20.0/7,-20.0/7);

本例中,20/7,-20/7的結果均為整型,小數全部捨去。而20.0/7和-20.0/7由於有實數參與運算,因此結果也為實型。

5.求餘運算子(模運算子)「%」雙目運算,具有左結合性。要求參與運算的量均為整型。 求餘運算的結果等於兩數相除後的餘數。

void main()

雙目運算,具有左結合性。求餘運算子% 要求參與運算的量均為整型。本例輸出100除以3所得的餘數1。

自增1,自減1運算子

自增1運算子記為「++」,其功能是使變數的值自增1。自減1運算子記為「--」,其功能是使變數值自減1。自增1,自減1運算子均為單目運算,都具有右結合性。

可有以下幾種形式: ++i i自增1後再參與其它運算。--i i自減1後再參與其它運算。

i++  i參與運算後,i的值再自增1。

i--  i參與運算後,i的值再自減1。

在理解和使用上容易出錯的是i++和i--。 特別是當它們出在較複雜的表示式或語句中時,常常難於弄清,因此應仔細分析。

void main() i<--8

i<--i+1

i<--i-1

i<--i+1

i<--i-1

i<--i+1

i<--i-1 int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

i的初值為8

第2行i加1後輸出故為9;

第3行減1後輸出故為8;

第4行輸出i為8之後再加1(為9);

第5行輸出i為9之後再減1(為8) ;

第6行輸出-8之後再加1(為9);

第7行輸出-9之後再減1(為8)

void main()

i<--5,j<--5,p<--0,q<--0

i+i+i--->p,i+1-->i,i+1-->i,i+1-->i

j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

這個程式中,對p=(i++)+(i++)+(i++)應理解為三個i相加,故p值為15。然後i再自增1三次相當於加3故i的最後值為8。而對於q 的值則不然,q=(++j)+(++j)+(++j)應理解為q先自增1,再參與運算,由於q自增1三次後值為8,三個8相加的和為24,j的最後值仍為8。

算術表示式表示式是由常量、變數、函式和運算子組合起來的式子。 乙個表示式有乙個值及其型別, 它們等於計算表示式所得結果的值和型別。表示式求值按運算子的優先順序和結合性規定的順序進行。

單個的常量、變數、函式可以看作是表示式的特例。

算術表示式

是由算術運算子和括號連線起來的式子, 以下是算術表示式的例子:

a+b  (a*2)/c (x+r)*8-(a+b)/7  ++i sin(x)+sin(y)  (++i)-(j++)+(k--)

賦值運算子和賦值表示式

簡單賦值運算子和表示式,簡單賦值運算子記為「=」。由「= 」連線的式子稱為賦值表示式。其一般形式為: 變數=表示式 例如:

x=a+b

w=sin(a)+sin(b)

y=i+++--j 賦值表示式的功能是計算表示式的值再賦予左邊的變數。賦值運算子具有右結合性。因此

a=b=c=5

可理解為

a=(b=(c=5))

在其它高階語言中,賦值構成了乙個語句,稱為賦值語句。 而在c中,把「=」定義為運算子,從而組成賦值表示式。 凡是表示式可以出現的地方均可出現賦值表示式。

例如,式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x ,故x應等於13。

在c語言中也可以組成賦值語句,按照c語言規定, 任何表示式在其未尾加上分號就構成為語句。因此如x=8;a=b=c=5;都是賦值語句,在前面各例中我們已大量使用過了。

如果賦值運算子兩邊的資料型別不相同, 系統將自動進行型別轉換,即把賦值號右邊的型別換成左邊的型別。具體規定如下:

1.實型賦予整型,捨去小數部分。前面的例2.9已經說明了這種情況。

2.整型賦予實型,數值不變,但將以浮點形式存放, 即增加小數部分(小數部分的值為0)。

3.字元型賦予整型,由於字元型為乙個位元組, 而整型為二個位元組,故將字元的ascii碼值放到整型量的低八位中,高八位為0。

4.整型賦予字元型,只把低八位賦予字元量。

void main()

int a,b=322;

float x,y=8.88;

char c1='k',c2;

printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b);

本例表明了上述賦值運算中型別轉換的規則。a為整型,賦予實型量y值8?88後只取整數8。

x為實型,賦予整型量b值322, 後增加了小數部分。字元型量c1賦予a變為整型,整型量b賦予c2 後取其低八位成為字元型(b的低八位為01000010,即十進位制66,按ascii碼對應於字元b)。

復合賦值符及表示式

在賦值符「=」之前加上其它二目運算子可構成復合賦值符。如

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。 構成復合賦值表示式的一般形式為: 變數 雙目運算子=表示式 它等效於 變數=變數 運算子 表示式 例如:

a+=5 等價於a=a+5  x*=y+7 等價於x=x*(y+7)  r%=p 等價於r=r%p 復合賦值符這種寫法,對初學者可能不習慣, 但十分有利於編譯處理,能提高編譯效率並產生質量較高的目標**。逗號運算子和逗號表示式在

逗號運算子

c語言中逗號「,」也是一種運算子,稱為逗號運算子。 其功能是把兩個表示式連線起來組成乙個表示式, 稱為逗號表示式。

其一般形式為: 表示式1,表示式2 其求值過程是分別求兩個表示式的值,並以表示式2的值作為整個逗號表示式的值。

void main()

a<--2,b<--4,c<--6,x<--0,y<--0

x<--a+b,y<---b+c

本例中,y等於整個逗號表示式的值,也就是表示式2的值,x是第乙個表示式的值。對於逗號表示式還要說明兩點:

1.逗號表示式一般形式中的表示式1和表示式2 也可以又是逗號表示式。例如:

表示式1,(表示式2,表示式3) 形成了巢狀情形。因此可以把逗號表示式擴充套件為以下形式: 表示式1,表示式2,…表示式n 整個逗號表示式的值等於表示式n的值。

2.程式中使用逗號表示式,通常是要分別求逗號表示式內各表示式的值,並不一定要求整個逗號表示式的值。

3.並不是在所有出現逗號的地方都組成逗號表示式,如在變數說明中,函式引數表中逗號只是用作各變數之間的間隔符

C語言中基本資料型別有哪些,c語言簡單資料型別有哪些

void 宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。char 字元型版 型別資料權,屬於整型資料的一種。int 整型資料,表示範圍通常為編譯器指定的記憶體位元組長。float 單精度浮點型資料,屬於浮點資料的一種。double 雙精度浮點型資料,屬於浮點資料的一種。bool 布林型...

C語言資料型別所佔位元組是和執行的機器位數有關還是編譯器有關

1全部1 c語言一般指的是ansi c的標準,對應的處理器分別是32位和64位的。2 型別分為內建型別和自定義型別 非內建型別 內建型別指的是無需宣告就可使用的型別,比如char,double,int等。自定義型別指的是使用前必須宣告的,如struct structname 結構型別,int a 5...

c語言資料型別轉換規則類似題目

表示式的結果double型的,但是由於c是float型,所以表示式的賦值結果還是float型 在c語言中,不同資料型別在進行運算時首先要轉換成同一型別,一種是自動轉換,二是強制轉換,如 int a 將a強制轉換為int型箭頭是轉換方向 char,short int unsigned long,flo...