運算子的種類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...