1. 程式人生 > >c語言操作符小歸納

c語言操作符小歸納

1.算數操作符

     +  -   *   /   %
  • / 操作符的兩個運算元必須都為整數,執行整數除法.如果有浮點數就執行浮點數除法.
     
printf("%d\n",8/5.0  //錯誤
printf("%f\n",8/5.0  //正確

  • % 操作符的兩個運算元必須為整數,返回的是整除之後的餘數。
2.移位操作符   << 左移操作符 ——左邊拋棄,右邊補0
  >>右移操作符,分為兩種:
  •   邏輯移位:左邊補0,右邊拋棄
  •   算術移位:左邊用原該值的符號位填充,右邊拋棄
注:不能移動負數位 3.位操作符     &   按位與——都為1才為1     |    按位或——有一個1就為1     ^   按位亦或——相異為1,相同為0
4.複合操作符 +=   -=   *=   /=   %=   >>=   <<=   &=   |=  
int a=1;
a=a+1;
a+=1;
5.單目 操作符     !           邏輯反操作    
    ~          對一個數的二進位制按位取反    (型別)    強制型別轉換     *           間接訪問操作符(解引用操作符)
  • &取地址
int arr[10]={1,2,3,4,5,6,7,8,9,0}
printf("%p\n",arr);  //首元素的地址
printf("%p\n",*arr);  //首元素
printf("%p\n",&arr);  //陣列地址,不是首元素地址  
  • sizeof 操作符的型別長度
    int a=10;
    char c='4';
    printf("%d\n",sizeof(a));  //4
    printf("%d\n",sizeof(int));  //4
    printf("%d\n",sizeof(c));  //1
  • char arr1[10]={0};
    int arr2[10]={0};
    printf("%d\n",sizeof(arr1));  //10
    printf("%d\n",sizeof(arr2));  //40
    //sizeof(陣列名)——陣列名錶示整個陣列
    //&陣列名——陣列名錶示整個陣列
    //除此之外所有的陣列名都是首元素的地址
    
6.關係操作符 >   >=    <    <=     !=    ==(用於測試相等) 7.邏輯操作符    &&    邏輯與——兩個都為真才為1     ||      邏輯或——兩個都為假才為0
int i=0,a=0,b=2,c=3,d=4;
i=a++ && ++b && d++;
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
//1,2,3,4
a=1   //2,3,3,5