程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> iOS開發入門 ☞ C言語(運算符)

iOS開發入門 ☞ C言語(運算符)

編輯:關於C++

iOS開發入門 ☞ C言語(運算符)。本站提示廣大學習愛好者:(iOS開發入門 ☞ C言語(運算符))文章只能為提供參考,不一定能成為您想要的結果。以下是iOS開發入門 ☞ C言語(運算符)正文


算術運算符:
  1. +  加法運算符
  2. -   減法運算符,或負值運算符
  3. *  乘法運算符
  4. /   除法運算符
  5. % 模運算符,或稱取余運算符,要求%兩側均為整型數據

% 取模(取余)運算符的留意事項:

1)取模運算符的操作數只能是整數  

2)取模運算符的正負性取決於後面那個操作數正負

3)假如取模運算的右邊小於左邊, 那麼後果就是右邊

取余(模運算):5%3=2; -5%3=-2; 5%-3=2; -5%-3=-2 (余數的符號與被除數分歧!)

2%9=2;

算術運算的留意點:
  1. 自動類型轉換

    int a = 10.6;

    int b = 10.5 + 1.7;

    int b = 10.5 + 10; //將左邊的10提升為了double類型

    自動將大類型轉換為了小類型,會喪失精度

  1. 自動類型提升

  (相反數據類型的值才干停止運算(比方加法運算),而且運算後果仍然是同一種數據類型。零碎會自動對占用內存較少的類型做一個“自動類型提升”的操作)

    float a = 10 + 3.45f;//int 提升為 float

    int b = 'A' + 32; // char 提升為 int

    double c = 10.3f + 5.7; // float 提升為 double

  1. 處理除法的精度問題

    double b = 1.0 / 2;

  1. 強迫類型轉換

  (將大范圍的數據賦值給小范圍變量時,零碎會自動做一個強迫類型轉換的操作,這樣容易喪失精度)

    double a = (double)1 / 2;

    double b = (double)(1 / 2);

    int i = 10.7;  //零碎轉

    int i = (int) 10.7;  //自己強轉

    int a = 198l; // long 轉換為 int

    char b = 65; // int 轉換為 char

    int c = 19.5f; // float 轉換為 int

 

賦值運算符的結合方向是:從右到左,而且優先級比算術運算符低

賦值運算符是一切運算符中除了逗號運算符以外優先級最低的

 

 

自增自減寫在後面和前面的區別:
  • 假如++寫在變量的後面, 那麼會先將變量自增再用自增之後的後果參與運算
  • 假如++寫在變量的前面, 那麼會先將變量的值參與運算再將變量自增
  • 總結一句話: ++在前, 先自增再運算, ++在後, 先運算再自增
++a和a++的區別:
  1. 先操作,再運用

    int b = ++a;  //等價於 a=a+1;  b=a;

  1. 先運用,後操作。

    int b = a++; //等價於 b=a;  a=a+1;

  運算規則:先左++,再賦值,最後右++。

 

sizeof()運算符:

sizeof可以用來計算一個變量或許一個常量、一種數據類型所占的內存字節數。

留意:sizeof是一個運算符, 不是一個函數

  應用sizeof計算的格式: sizeof(變量/常量/數據類型);

 

sizeof一共有3種方式:

  1. sizeof(變量\常量)
  2. sizeof  變量\常量
  3. sizeof(數據類型)

 

舉例:

#include <stdio.h>

int main() {

    char c='a';

    printf("%lu, %lu\n", sizeof(10), sizeof(c));//4, 1

    printf("%lu, %lu\n", sizeof 10, sizeof c);//4, 1

    printf("%lu\n", sizeof(int));//4

    return 0;

}

 

逗號運算符和逗號表達式
  1. 逗號運算符次要用於銜接表達式

    例如:a=a+1,b=3*4

  1. 用逗號運算符銜接起來的表達式稱為逗號表達式

        它的普通方式為:表達式1,表達式2,… …,表達式n

    逗號表達式的運算進程是:先算表達式1,再算表達式2,順次算到表達式n

    整個逗號表達式的值是最後一個表達式的值

//逗號運算符

#include <stdio.h>

//逗號運算符相似於加減乘除運算符,逗號運算符取最後一個表達式的值。

int main(){

    int num,num1;

    num=4,7; //逗號運算符的優先級低於賦值運算符

    num1=(4,7); //進步逗號運算符的優先級,先逗號運算,再賦值運算

    printf("num=%d num1=%d\n",num,num1); // num=4 num1=7

    return 0;

}

 

關系運算符

<    小於運算符

<=  小於等於運算符

>    大於運算符

>=  大於等於運算符

==   等於運算符

!=   不等於運算符

  關系運算符的前往值只要兩種, 要麼真, 要麼假. 1(真)和0(假)

 

運用留意(優先級):

  1. (算術運算符)的優先級大於(關系運算符)

如:3+4>8-2;//後果為1; 等價於:(3+4)>(8-2);

  1. 關系運算符的結合方向為“從左往右”

如:4>3>2;//後果為0

  1. (<,>,<=,>=)的優先級大於(==,!=)

如:2==3>1;//後果為0; 等價於:2==(3>1);

int a=3>4+7;//後果為0

int b=(3>4)+7;//後果為7

int c=5!=4+2*7>3==10;//後果為0

邏輯運算符

  && 邏輯與 、|| 邏輯或 、! 邏輯非

  運用留意:

  • 若想判別a的值能否在(3, 5)范圍內,千萬不能寫成3<a<5,由於關系運算符的結合方向為“從左往右”。比方a為2,它會先算3<a,也就是3<2,條件不成立,後果為0。再與5比擬,即0<5,條件成立,後果為1。因而 3<a<5的後果為1,條件成立,也就是說當a的值為2時,a的值是在(3, 5)范圍內的。這分明是不對的。正確的判別辦法是:(a>3) && (a<5)
  • 可以屢次延續運用邏輯非運算符:!(4>2)後果為0,是"假",!!(4>2)後果為1,是"真",!!!(4>2)後果為0,是“假”
  • C言語規則:任何非0值都為“真”,只要0才為“假”。因而邏輯與也適用於數值。  
  • 比方:
    • 5 && 4的後果是1,為“真”;-6 && 0的後果是0,為“假”。
    • 5 || 4的後果是1,為“真”;-6 || 0的後果是1,為“真”;0 || 0的後果是0,為“假”。
    • !5、!6.7、!-9的後果都為0,!0的後果為1。

  && 和 || 都具有短路特征:

  假如前一個表達式能決議最終後果則不會計算後一個表達式!

#include <stdio.h>

int main() {

    //邏輯運算符&&和||的短路特征

    int a=3,b=4,c=5,r;

    r=(a>b)&&(++b>c);

    printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 5, 0

    r=(a<b++)||(b<c++);

    printf("%d,%d,%d,%d\n", a, b, c, r);//3, 5, 5, 1

    

    //非短路的邏輯運算符&和|

    a=3;b=4;c=5;

    r=(a>b)&(b>++c);

    printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 6, 0

    r=(a<b)|(b<c++);

    printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 7, 1

    return 0;

}

優先級: 

  邏輯運算符的優先級順序為: 小括號() > 負號 - > ! > 算術運算符 > 關系運算符 > && > ||

 條件運算符(三目運算符 " ? : "):表達式1?表達式2:表達式3

假如表達式1為真,三目運算符的運算後果為表達式2的值,否則為表達式3的值

單目運算符:操作數只要一個(-1;)

雙目運算符:操作數有兩個(1 - 2;)

三目運算符:操作數有三個(5 > 4 ? 1 : 0)

 

當我們不確定某些運算符的優先級的時分,可以運用() 來明白優先級

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved