C語言中的符號

2021-05-25 02:48:18 字數 3972 閱讀 4016

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

1.算術運算子

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

2.關係運算子

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

3.邏輯運算子

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

4.位操作運算子

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

5.賦值運算子

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

6.條件運算子

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

7.逗號運算子

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

8.指標運算子

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

9.求位元組數運算子

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

10.特殊運算子

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

1.c的資料型別

基本型別,構造型別,指標型別,空型別

2.基本型別的分類及特點

型別說明符      位元組       數值範圍

字元型char        1        c字符集

基本整型int       2        -32768~32767

短整型short int     2         -32768~32767

長整型 long int     4      -214783648~214783647

無符號型 unsigned    2        0~65535

無符號長整型 unsigned long 4      0~4294967295

單精度實型 float    4       3/4e-38~3/4e+38

雙精度實型 double   8       1/7e-308~1/7e+308

3.常量字尾

l或l 長整型

u或u 無符號數

f或f 浮點數

4.常量型別

整數,長整數,無符號數,浮點數,字元,字串,符號常數,轉義字元。

5.資料型別轉換

·自動轉換

在不同型別資料的混合運算中,由系統自動實現轉換, 由少位元組型別向多位元組型別轉換。 不同型別的量相互賦值時也由系統自動進行轉換,把賦值號右邊的型別轉換為左邊的型別。

·強制轉換

由強制轉換運算子完成轉換。

6.運算子優先順序和結合性

一般而言,單目運算子優先順序較高,賦值運算子優先順序低。 算術運算子優先順序較高,關係和邏輯運算子優先順序較低。 多數運算子具有左結合性,單目運算子、三目運算子、 賦值

7.表示式

表示式是由運算子連線常量、變數、函式所組成的式子。 每個表示式都有乙個值和型別。 表示式求值按運算子的優先順序和結合性所規定的順序進行。

表示輸出型別的格式字元       格式字元意義

d                 以十進位制形式輸出帶符號整數(正數不輸出符號)

o                 以八進位制形式輸出無符號整數(不輸出字首o)

x                 以十六進製制形式輸出無符號整數(不輸出字首ox)

u                 以十進位制形式輸出無符號整數

f                 以小數形式輸出單、雙精度實數

e                 以指數形式輸出單、雙精度實數

g                 以%f%e中較短的輸出寬度輸出單、雙精度實數

c                 輸出單個字元

s                 輸出字串

標誌字元為-、+、#、空格四種,其意義下表所示:

標誌格式字元      標 志 意 義

-          結果左對齊,右邊填空格

+          輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號

#          對c,s,d,u類無影響;對o類, 在輸出時加前

綴o         對x類,在輸出時加字首0x;對e,g,f 類當結果有小數時才給出小數點

格式字串

格式字串的一般形式為: %[*][輸入資料寬度][長度]型別 其中有方括號的項為任選項。各項的意義如下:

1.型別

表示輸入資料的型別,其格式符和意義下表所示。

格式    字元意義

d     輸入十進位制整數

o     輸入八進位制整數

x     輸入十六進製制整數

u     輸入無符號十進位制整數

f或e    輸入實型數(用小數形式或指數形式)

c     輸入單個字元

s     輸入字串

轉義字元

轉義字元是一種特殊的字元常量。轉義字元以反斜線」/」開頭,後跟乙個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱「轉義」字元。例如,在前面各例題printf函式的格式串中用到的「/n」就是乙個轉義字元,其意義是「回車換行」。轉義字元主要用來表示那些用一般字元不便於表示的控制**。

常用的轉義字元及其含義

轉義字元  轉義字元的意義

/n      回車換行

/t      橫向跳到下一製表位置

/v      豎向跳格

/b      退格

/r      回車

/f      走紙換頁

//      反斜線符」/」

/』      單引號符

/a      鳴鈴

/ddd     1~3位八進位制數所代表的字元

/xhh     1~2位十六進製制數所代表的字元

廣義地講,c語言字符集中的任何乙個字元均可用轉義字元來表示。表2.2中的/ddd和/xhh正是為此而提出的。ddd和hh分別為八進位制和十六進製制的ascii**。如/101表示字?quot;a」 ,/102表示字母」b」,/134表示反斜線,/xoa表示換行等。轉義字元的使用

在c語言中,對變數的儲存型別說明有以下四種:

auto     自動變數

register   暫存器變數

extern    外部變數

static    靜態變數

自動變數和暫存器變數屬於動態儲存方式, 外部變數和靜態變數屬於靜態儲存方式。在介紹了變數的儲存型別之後, 可以知道對乙個變數的說明不僅應說明其資料型別,還應說明其儲存型別。 因此變數說明的完整形式應為: 儲存型別說明符 資料型別說明符 變數名,變數名…; 例如:

static int a,b;           說明a,b為靜態型別變數

auto char c1,c2;          說明c1,c2為自動字元變數

static int a[5]=;    說明a為靜整型陣列

extern int x,y;           說明x,y為外部整型變數

與指標有關的各種說明和意義見下表。

int *p;     p為指向整型量的指標變數

int *p[n];   p為指標陣列,由n個指向整型量的指標元素組成。

int (*p)[n];  p為指向整型二維陣列的指標變數,二維陣列的列數為n

int *p()    p為返回指標值的函式,該指標指向整型量

int (*p)()   p為指向函式的指標,該函式返回整型量

int **p     p為乙個指向另一指標的指標變數,該指標指向乙個整型量。

指標變數的賦值

p可以有以下兩種方式:

(1)指標變數初始化的方法 int a;

int *p=&a;

(2)賦值語句的方法 int a;

int *p;

p=&a;

(1)取位址運算子&

(2)取內容運算子*

C語言中的 和 符號

之前對 和 符號一直理解的比較淺顯。只知道 p好像表示的是乙個指標 p表示的是乙個位址。然而這次當遇到了下面這個情況的時候 int a 10 int b a printf d n a printf d n a printf d n b printf d n b 結果 10 6487620 64876...

C語言中的 和 符號

c語言中的 和 符號 int main void 執行結果 a 10 a 0021f7c b 0021f7cc b 10一臉懵逼,為什麼 a和 b的值不是一樣?這才發現自己其實一點都沒有搞懂。所以a本來代表兩個值 儲存單元的位址和儲單元中的資料。於是就有了二異性。為了消除這種二義性,c語言規定a表示...

C語言中的 和 符號

之前對 和 符號一直理解的比較淺顯。只知道 p好像表示的是乙個指標 p表示的是乙個位址。然而這次當遇到了下面這個情況的時候 int a 10 int b a printf d n a printf d n a printf d n b printf d n b 結果 10 6487620 64876...