C語言運(yùn)算符與表達(dá)式-創(chuàng)新互聯(lián)

運(yùn)算符與表達(dá)式

目錄

10余年的兩當(dāng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整兩當(dāng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“兩當(dāng)網(wǎng)站設(shè)計(jì)”,“兩當(dāng)網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

運(yùn)算符與表達(dá)式

運(yùn)算符

左值與右值

優(yōu)先級(jí)

結(jié)合性(讀法)

基本運(yùn)算符

賦值運(yùn)算符(=)

算術(shù)運(yùn)算符(+ - * / %)

位運(yùn)算符(>><<)

復(fù)合賦值運(yùn)算符

條件與邏輯運(yùn)算符

條件運(yùn)算符

邏輯運(yùn)算符

特殊運(yùn)算符

逗號(hào)運(yùn)算符

sizeof運(yùn)算符

三目運(yùn)算符

++與--運(yùn)算符

有毒代碼

輸入的奇葩代碼

內(nèi)存共享問題

基礎(chǔ)數(shù)據(jù)類型作業(yè)

填空


運(yùn)算符 左值與右值
  • 左值:一般是變量

  • 右值:可以為常量或變量

    int iNum;
    iNum = 0;
優(yōu)先級(jí)
  • 算法(怎么去算)

結(jié)合性(讀法)
iNum=1;
//把1賦值給iNum
基本運(yùn)算符 賦值運(yùn)算符(=)
  • 賦值運(yùn)算符最終的值是變量的值

int iNum=0;
iNum=123;
算術(shù)運(yùn)算符(+ - * / %)
  • (/) 除法取整

    float fNum=4/3;
    printf("%f\n",fNum);
  • (%)取余,余數(shù)正負(fù)只與被取余數(shù)有關(guān)

    printf("%d\n", 2 % 3);
    printf("%d\n", -2 % 3);
    printf("%d\n", -4 % 3);
位運(yùn)算符(>><<)
  • 都是以二進(jìn)制形式操作

  • (>>)右移:右移n位 (正數(shù)左邊加n個(gè)零)( 負(fù)數(shù)加n個(gè)一)

    int iNum=0x00ffeedd;
    printf("%x\n",iNum>>8);
    //0x0000ffee
  • (<<)左移: 左移n位 (右邊加n個(gè)0)

    printf("%x\n",iNum<<8)
    //0xffeedd00
  • 位與(&)

    printf("%d\n",2&3);
  • 位或(|)

    printf("%d\n",2|3);
  • 按位取反(~)[0變1 1變0]

    printf("%d\n",~1);
復(fù)合賦值運(yùn)算符
  • += -= /= *= &= |=

  • 默認(rèn)把復(fù)合賦值運(yùn)算符右邊部分當(dāng)作一個(gè)整體

    int num=0;
    num*=1+2+3+4*5;
    //結(jié)果為0
條件與邏輯運(yùn)算符 條件運(yùn)算符
  • 計(jì)算機(jī)中的成立與不成立

    • 非零值表示的都是成立

    • 只有NULL 0 \0表示不成立

  • bool類型初始化

    • bool類型正常初始化

    #include//bool型頭文件
    bool bNum=false;
    • bool類型非正常初始化

    bool bNum=-123;
  • < >!= >=<= ==

    printf("%d\n",1>2);
    printf("%d\n", 1 >2);
    printf("%d\n", 1 == 2);
    printf("%d\n", 1< 2);
  • 永遠(yuǎn)成立的表達(dá)式

    int a=0;
    scanf_s("%d\n",&a);
    printf("%d\n",1
    • 條件表達(dá)式不能寫連續(xù)操作 1

    • 編程中沒有省略的寫法

邏輯運(yùn)算符
  • 用來描述多個(gè)條件

  • 邏輯運(yùn)算符

    • && 邏輯與

      • 有0則0

      • 非0即表示1

      printf("%d\n", 1 && 1);     //1
      printf("%d\n", 0 && 1);     //0
      printf("%d\n", "I" && 1);   //1
    • || 邏輯或

      • 有1則1

      printf("%d\n",1||0);	//1
    • ! 邏輯取反(邏輯非)

      • 非0則0

      printf("%d\n",!"qqqqq2");	//0
  • 短路現(xiàn)象(計(jì)算機(jī)偷懶現(xiàn)象)

    • 已經(jīng)知道表達(dá)式的值,不執(zhí)行后續(xù)命令

      int a = 0;
      	1 && (a = 123);		//前面為1 不知道整個(gè)表達(dá)式的值,所以不存在短路
      	printf("%d\n", a);	//123
      	0 && (a = 111);		//前面為0 知道整個(gè)表達(dá)式的值,所以a=111不會(huì)執(zhí)行,形成短路現(xiàn)象
      	printf("%d\n", a);	//123
      	1 || (a = 111);		//前面為1 知道整個(gè)表達(dá)式的值,所以a=111不會(huì)執(zhí)行,形成短路現(xiàn)象
      	printf("%d\n", a);	//123
特殊運(yùn)算符 逗號(hào)運(yùn)算符
  • 有效值是最右邊,執(zhí)行過程從左往右

    int i = 1;
    int j = 2;
    int a = (i += 1, j += 2, i += j, i + j);	//a=i+j
    printf("%d\n", a);		//a=10
sizeof運(yùn)算符
  • sizeof是關(guān)鍵字不是函數(shù)

  • 作用:統(tǒng)計(jì)類型占用字節(jié)數(shù)

  • 作用期:編譯期完成

  • 使用%zd打印數(shù)據(jù)類型大小

    printf("int:%zd,float:%zd,long:%zd\n", sizeof(int), sizeof(float), sizeof(long));
    i = 0;
    int result = sizeof(i++);	//在編譯期完成,i++不執(zhí)行
    printf("result=%d,i=%d\n",result, i);
三目運(yùn)算符
  • 表達(dá)式1?表達(dá)式2:表達(dá)式3

    • 表達(dá)式1成立,整個(gè)表達(dá)式的值為表達(dá)式2

    • 表達(dá)式1不成立,整個(gè)表達(dá)式的值為表達(dá)式3

    result=1>2?1:2;
    //return=2
  • 一般用于取大值或最小值

++與--運(yùn)算符
  • 前置++或--(先改變自己再去做其他運(yùn)算)

  • 后置++或--(先做其他運(yùn)算再改變自己)

    int number=1;
    number++;
    result=++number	//result=3	number=3
    result=number++	//result=3	number=4
有毒代碼 輸入的奇葩代碼
int number = 0;
int iNum = 0;
//自己用scanf函數(shù)時(shí)候不需要精度控制和其他格式字符
scanf_s("%dABC%d", &number, &iNum);	//輸入格式必須為%dABC%d
printf("%d,%d\n", number, iNum);
scanf_s("%d,%d", &number, &iNum);	//輸入格式必須為%d,%d
printf("%d,%d\n", number, iNum);
內(nèi)存共享問題
  • 學(xué)會(huì)怎么算即可

  • 只看前置不看后置,再看總共幾部分

int i = 1;
int result = i++ + ++i + i++ + ++i + i++ ;	//3個(gè)前置 5個(gè)部分	result=3*5=15
printf("result=%d,i=%d\n", result, i);	//result=15,i=6
i=1;
result = i++ * ++i * i++ * ++i * i++ ;	//3個(gè)前置 5個(gè)部分	result=3^5=243
printf("result=%d,i=%d\n", result, i);	//result=243
基礎(chǔ)數(shù)據(jù)類型作業(yè) 填空

1,將下列個(gè)個(gè)小題所示表達(dá)式的值填入相應(yīng)的括號(hào)內(nèi)。

設(shè)變量說明如下:

unsigned i =0,j=1,a,b;
short c,d;
float e,f=2;

(1) a=j++?j++:i++; (2)

(2) b=!i; (1)

(3) i&j; (0)

2,設(shè)a=2,b;則執(zhí)行b=1&&1;語句后,b的結(jié)果是(1)

3,設(shè)a=2,b;則執(zhí)行b=a==!a;語句后,b的結(jié)果是(0)

4,若x,i,j和k都是int型變量,則計(jì)算下面表達(dá)式后x的值為(42)

x=(i=4,j=16,k=42);

5,請(qǐng)寫出以下程序段的運(yùn)行結(jié)果(0)

int x=3,y=4,z=4;

printf("%d\n",(x>=y>=x)?1:0);

6,設(shè)變量a是整型,f是實(shí)型,i是雙精度浮點(diǎn)型,則表達(dá)式10+'a'+i*f的值的數(shù)據(jù)類型為(雙精度浮點(diǎn)型)double

7,設(shè)x,y和z是int型變量,且x=3,y=4,z=5,則表達(dá)式!((x

8,以下程序的輸出結(jié)果是()

int a=4,b=5,c=0,d;
d = !a && !b || !c;// 0&0||1
printf("%d\n",d);

輸出結(jié)果:1

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:C語言運(yùn)算符與表達(dá)式-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article38/dsipsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、面包屑導(dǎo)航網(wǎng)站制作、App開發(fā)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司