IOS階段學習第三天筆記(運算子),ios第三天

來源:互聯網
上載者:User

IOS階段學習第三天筆記(運算子),ios第三天

                                         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 */10 11 a = 0xf0;12 printf("%d\n",a|0x0f);//0xff13 /* 14 1111,000015 0000,111116 */17 18 /*把a的第三個bit設定成0,從 第bit算起*/19 a = 0xcc;//0b1100110020 a = a&0xf7;21 /* 1100,110022 1111,0111 //0b1100,0100 0xc4=19623 */24 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 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; 2   3     printf("輸入一個Short\n"); 4  5     scanf("%hd",&s); 6   7     printf("輸出一個Short值%hd\n",s); 8  9      char c,last;10 11      printf("輸入一個char\n");12   13      scanf("%c",&c);//方法一  輸入緩衝區裡面殘留一個斷行符號符 %c作為有效輸入14   15      //last=getchar();//方法二 getchar()從裡面取走一個字元16  17      scanf("%c",&c);18  19      printf("輸出一個char值%c\n",c);

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.