iOS學習(C語言)知識點整理筆記
1、運算符
一、算術運算符
1)表達式由變量、常量、運算符構成,有確定的類型和值
2)算術運算符包括: +(加),-(減),*(乘),/(除),%(模)
3)算術運算符優先級 括號()> * ,/ ,% >+,-
4)%表示取余、取模 a%b 表示a除以b取余數
5)整數相除保留兩位小數處理方法如: PRintf(“%.2f”,(float)14/9);
6)自增自減運算符:++;- -
7)a++ 與 ++a 的區別: ++a 返回值是a+1, b=++a 相當于a=a+1然后b=a ; a++ 返回值是 a ,b=a++ 相當于b=a 然后a=a+1
二、關系運算符
1)關系運算符包括: >, >=, <, <=, ==, !=
2)關系運算符比較結果成立是 1(true),不成立結果是0(false)
三、邏輯運算符
1)邏輯運算符包括:
&&(邏輯與/并且,要2者都成立才為真);
||(邏輯或/或者 只要一個條件滿足即為真);
!(邏輯非/不是) !(真)=假 !(假)=真 非0=真 邏輯運算符 一般與if連用
四、三目運算符
1)三目運算組成結構:(條件表達式)?(語句1):(語句2)
例如:c= a>b?a:b; 表示 取a b兩者中的最大值賦值給c
五、賦值運算符
1)賦值運算符包括:=,+= ,-=,*=,/=,%=
2)+= 表示前變量等于變量原有的值加上后面的值 例如:a+=b 表示 a=a+b;
六、逗號運算符
1)逗號運算符優先級最低 例如 (表達式1、表達式2,.....,表達式n)=表達式n 取最后一個表達式
七、位(單bit)操作運算符
1) 按位與 & ; 按位或 | ;按位取反 ~ ;位移操作
2)代碼實例:
1 int a=0xff; 2 printf(“%d/n”,a&0x0f)//結果為:0x0f=15 3 /* 4 分析: 5 1111,1111 6 0000,1111 7 —————————— 8 0000,1111(0為假 1為真 &條件下 假&真=假 真&真=真 ) 9 */11 a = 0xf0;12 printf("%d/n",a|0x0f);//結果:0xff13 /* 14 1111,000015 0000,111116 */18 /*把a的第三個bit設置成0,從 第bit算起*/19 a = 0xcc;//0b1100110020 a = a&0xf7;21 /*
1100,110022 1111,0111 //0b1100,0100 0xc4=19623 */25 /*26 把a的第三個bit設置成127 */28 a = 0;29 a = a|0x8;30 /*31 0000,000032 0000,1000 =0x8;33 */ 34 printf("a=%d/n",a);36 a = 0b110;37 printf("%d/n",a<<2);//結果:0b1,1000=2439 a = 0b0110;40 /*41 分析:42 int=4字節=32bit 43 即 a=0b0110=0b 0000,0000,0000,0000,0000,0000,0000,011044 按位取反后的結果:1111,1111,1111,1111,1111,1111,1111 ,100145 */46 printf("~a=0x%x=%d/n",~a,~a);//按位取反,0xfffffff9=-7
八、各類運算符的優先級比較
1、 括號(可以嵌套)>單目(++,- -,!)>算術> 關系>邏輯>賦值
九、數據類型轉換
1 int main() 2 { 5 int a = 0xfff1;
7 char c = a;//隱式轉化
9 printf("%d=0x%x/n",c,c);//截斷,取低8bits11 printf("%f/n",(float)14/5);//強制類型轉換,14轉成float13 /*15 1、與long運算,轉成long17 2、float參與運算,轉成double運算19 3、char 和short運算的時候,轉成 int21 4、有符號->無符號23 */25 float f = 3.14;27 printf("3.14+2000=%f/n",f+2000);29 char ch1 = -128;//0x8031 int i = ch1;//char->int.位擴展:負數補1,正數補033 //0x80(char)-> 0xffff,ff8035 printf("i=%d=0x%x/n",i,i);37 ch1 = 8;//0x839 i = ch1;//char->int.位擴展:負數補1,正數補041 printf("i=%d=0x%x/n",i,i);43 return 0;45 }
十、宏定義
1)宏定義一般都為大寫 格式:#define 別名 (大寫) 表達式/ 參數
2)宏定義的作用是 增強代碼可讀性,方便數值修改
3)例如 通過宏定義求兩數最大值 方法:
1 #define MAX(a,b) a>b?a:b2 #include <stdio.h>3 int main(){4 printf("請輸入兩個數:/n");5 scanf("%d%d",&a,&b);6 printf("最大值是:%d",MAX(a,b));7 return 0;8 }
十一、輸入輸出
1) scanf()/getchar() 用于接收用戶輸入 printf()/putchar() 用于輸出信息
2)scanf(“格式化字符串”,參數地址列表) scanf 輸入參數必須加上“& ”取地址符號,字符串數組除外; scanf根據回車鍵執行,
根據Tab或空格來分隔字符,回車表示接收結束,scanf 接收輸入是也可指定長度,如果輸入信息大于指定長度
則從右向左截??; 例如:int a=12345;scanf(“%3d”,&a) printf(“%d”,a)輸出結果為 123 ;輸入信息小
于指定寬度則無影響。
3)printf(“格式化字符串”,輸出信息); printf 中可通過格式化字符串中置入數字來設定輸出寬度 ;
例如:printf(“%8d”,19) 向右推移8個長度輸出19 ;如果輸出數據大于指定寬度則不起作用
4)解決scanf輸入緩沖區問題 即:當輸入為char(%c)類型 前面有輸入時會直接跳過本次的輸入。
代碼實例:
1 short s; 3 printf("輸入一個Short/n"); 5 scanf("%hd",&s); 7 printf("輸出一個Short值%hd/n",s); 9 char c,last;11 printf("輸入一個char/n");13 scanf("%c",&c);//方法一 輸入緩沖區里面殘留一個回車符 %c作為有效輸入
scanf("%c",&c);
15 //last=getchar();//方法二 getchar()從里面取走一個字符
17 printf("輸出一個char值%c/n",c);
新聞熱點
疑難解答