第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
  • 對(duì)比.c與.i文件的區(qū)別:1、首先都是c的語(yǔ)法 2、.c文件開(kāi)頭的#include<stdio.h>變成了一堆代碼:預(yù)處理首先展開(kāi)了頭文件 3、預(yù)處理進(jìn)行了宏替換(用到宏的地方 都被替換成宏值,編譯器是把宏值當(dāng)做字符串)

    如何申明一個(gè)宏: #define? 宏名(標(biāo)識(shí)符規(guī)范)? 宏值(注意編譯器把宏值當(dāng)做字符串)

    http://img1.sycdn.imooc.com//5e48f7750001623003250285.jpg

    截圖 :在預(yù)處理過(guò)程的宏替換

    宏一般用途:為了便于修改代碼中反復(fù)使用到的常量? 數(shù)組的buffer

    查看全部
  • .c 文件——.i文件:預(yù)處理

    .i 文件——.s文件:編譯

    .s文件——.o文件:匯編

    .o文件——可執(zhí)行文件:鏈接?

    為了查看.i文件:gcc -o helloworld.i helloworld.c -E

    -E表示:讓gcc只進(jìn)行到預(yù)處理

    查看.i文件:vi xx.i


    查看全部
  • 宏函數(shù):

    eg.#define N(n) n*10

    ????int b=N(20)//在I文件中為:int b=20*10;

    注意:#define ADD(a,b) a+b

    ?????????int e=ADD(10,20)*ADD(10,20)

    ????????由于宏只是字符串的復(fù)制,不進(jìn)行運(yùn)算,所以在I文件中為:

    ????????int e=10+20*10+20

    ????????根據(jù)運(yùn)算的優(yōu)先級(jí),要在宏定義的a+b外加上()

    ????????宏函數(shù)對(duì)參數(shù)沒(méi)有數(shù)據(jù)類型要求(區(qū)別與一般函數(shù))


    查看全部
  • struct 占用空間計(jì)算

    查看全部
    0 采集 收起 來(lái)源:Linux C公用體

    2020-02-07

  • 1.左移 <<

    將數(shù)據(jù)對(duì)應(yīng)的二進(jìn)制位值逐位左移若干位

    規(guī)則:高位丟棄,低位補(bǔ)0

    eg.a: 00000000 00000000 00000000 00101010

    a<<4 (0000)00000000 00000000 00000010 10100000

    應(yīng)用:將操作數(shù)*2^n

    2.右移 >>

    將數(shù)據(jù)對(duì)應(yīng)的二進(jìn)制位值逐位右移若干位

    規(guī)則:低位丟棄,高位補(bǔ)0

    應(yīng)用:將操作數(shù)/2^n



    查看全部
  • 1.^ 按位異或

    操作規(guī)則:如果兩個(gè)操作數(shù)的對(duì)應(yīng)位相同,則結(jié)果數(shù)對(duì)應(yīng)位為0,否則為1.

    應(yīng)用:1.定位反轉(zhuǎn)(任何數(shù)與2做按位異或運(yùn)算,二進(jìn)制位0變1,1變0)

    ? ?2.數(shù)值交換(

    設(shè)有兩個(gè)操作數(shù)a,b;

    a=a^b;

    b=b^a;

    a=a^b;

    即完成交換

    )

    2.~ 按位取反

    操作規(guī)則:操作數(shù)的二進(jìn)制位0變1,1變0.


    查看全部
  • | 按位或

    操作規(guī)則:如果這兩個(gè)數(shù)的二進(jìn)制數(shù)的某一位有一個(gè)為為1,結(jié)果數(shù)的對(duì)應(yīng)數(shù)位為1,否則為0.

    應(yīng)用:設(shè)定數(shù)據(jù)的指定位置(任何數(shù)與2(0xFF)進(jìn)行按位或運(yùn)算結(jié)果都為255(后八位=1))


    查看全部
  • 位運(yùn)算符:

    & 按位與

    | 按位或

    ^ 按位異或

    ~ 按位取反

    << 左移

    >> 右移


    & 按位與


    操作數(shù):有賦值的int型或char型

    操作規(guī)則:如果這兩個(gè)數(shù)的二進(jìn)制數(shù)的某一位都為1,結(jié)果數(shù)的對(duì)應(yīng)數(shù)位為1,否則為0.

    應(yīng)用:1.迅速清零(任何數(shù)與0進(jìn)行按位與運(yùn)算結(jié)果都是0)

    ? ?2.保留指定位置(將要取原數(shù)某位的位置保留,第二個(gè)數(shù)的對(duì)應(yīng)位置要為1)

    ? ?3.判斷操作數(shù)是否為奇數(shù)或偶數(shù)(如果操作數(shù)和1做按位與的運(yùn)算結(jié)果為1,則是奇數(shù),0則為偶數(shù))


    查看全部
  • 共用體:

    為不同變量提供同一塊內(nèi)存地址

    聲明方法:

    union [name]{

    ????...

    };

    使用:union [union_name] [value_name];

    共用體聲明時(shí)只能有一個(gè)常量。給共用體成員賦值時(shí)后賦值的變量值會(huì)覆蓋前一個(gè)

    共用體所占的內(nèi)存地址是其成員中內(nèi)存地址最大的成員的內(nèi)存地址。

    結(jié)構(gòu)體對(duì)象大小=最后一個(gè)成員的大小+最后一個(gè)成員的偏移量+填充字節(jié)數(shù)

    偏移量:結(jié)構(gòu)體中一個(gè)成員相對(duì)于共用體的首字節(jié)(即第一個(gè)成員的首字節(jié))所距離的大小。(那么第一個(gè)成員相對(duì)于結(jié)構(gòu)體的偏移量為0)

    每個(gè)成員所占內(nèi)存大小的偏移量=成員字節(jié)大小的整數(shù)倍。(若不是,則編譯器會(huì)在前一個(gè)成員后做字節(jié)填充,使這個(gè)成員的偏移量=字節(jié)大小的整數(shù)倍。計(jì)算結(jié)構(gòu)體內(nèi)存地址大小時(shí)若最后一個(gè)成員的偏移量仍不等于這個(gè)成員字節(jié)大小的整數(shù)倍,會(huì)在最后一個(gè)成員后做字節(jié)填充。)

    打印某個(gè)變量的字節(jié)大?。?/p>

    printf("%lu",sizeof(...));

    共用體與結(jié)構(gòu)體其他基本相同

    查看全部
    1 采集 收起 來(lái)源:Linux C公用體

    2020-01-27

  • 結(jié)構(gòu)體指針:

    指向結(jié)構(gòu)體變量的指針:

    eg.

    struct weapon * w;

    w = &weapon;

    printf("name=%s\n",(*w).name)//或w->name


    查看全部
    0 采集 收起 來(lái)源:結(jié)構(gòu)體指針

    2020-01-27

  • 初始化結(jié)構(gòu)體:

    struct [結(jié)構(gòu)體名稱] [變量名] ={...,...,...,...};

    訪問(wèn)結(jié)構(gòu)體成員:

    [結(jié)構(gòu)體變量名].[結(jié)構(gòu)體成員名]

    結(jié)構(gòu)體數(shù)組:

    struct [結(jié)構(gòu)體名] [數(shù)組名] [num] ={...};

    eg.struct weapon weapon[2]={{"a",50,100},{"b",100,200}};

    ?????printf("%d",weapon[0].atk);

    查看全部
  • 結(jié)構(gòu)體:不同數(shù)據(jù)類型變量的集合

    數(shù)組:相同數(shù)據(jù)類型變量的集合

    聲明結(jié)構(gòu)體:

    eg.

    struct weapon{

    ????char name[20];

    ????int atk;

    ????int price;

    };

    定義結(jié)構(gòu)體變量:

    第一種:struct [名稱] [變量名];

    第二種:在聲明時(shí)定義:eg.

    struct weapon{

    ????char name[20];

    ????int atk;

    ????int price;

    }weapon;//全局變量

    第三種:eg.

    struct {//沒(méi)有名稱,此后不能再定義

    ????char name[20];

    ????int atk;

    ????int price;

    }weapon;


    查看全部
  • typedef的作用:重命名變量數(shù)據(jù)類型

    ????語(yǔ)法:typedef [數(shù)據(jù)類型] [新的名字]

    ????eg.typedef int * pointer;//將int * 的數(shù)據(jù)類型命名為pointer

    typedef VS define:

    ①預(yù)處理時(shí)define定義的宏會(huì)替換,但typedef定義的別名不會(huì)替換。

    ②作用域不同

    ③通常用于給自定義數(shù)據(jù)類型其別名

    size_t : unsigned long的別名


    查看全部
  • 宏函數(shù):

    eg.#define N(n) n*10

    ????int b=N(20)//在I文件中為:int b=20*10;

    注意:#define ADD(a,b) a+b

    ?????????int e=ADD(10,20)*ADD(10,20)

    ????????由于宏只是字符串的復(fù)制,不進(jìn)行運(yùn)算,所以在I文件中為:

    ????????int e=10+20*10+20

    ????????根據(jù)運(yùn)算的優(yōu)先級(jí),要在宏定義的a+b外加上()

    ????????宏函數(shù)對(duì)參數(shù)沒(méi)有數(shù)據(jù)類型要求(區(qū)別與一般函數(shù))

    查看全部
  • 定義宏:

    #define ...

    eg.#define R 10

    宏定義與預(yù)處理同時(shí)發(fā)生在第一階段,I文件中將C文件中引用宏的地方都替換成其表達(dá)式。(但只是將表達(dá)式的字符串移動(dòng)到引用宏的地方。

    eg.C文件中:#define R 10? ? int a=R;

    ????I文件中:int a=10;

    查看全部

舉報(bào)

0/150
提交
取消
課程須知
本課程為C語(yǔ)言的中級(jí)課程 1、需要有一定的C語(yǔ)言基礎(chǔ),如有基礎(chǔ)薄弱的童鞋可以看一下網(wǎng)站上其他3門C語(yǔ)言的課程 2、因在Linux環(huán)境下,需會(huì)一些Linux下的命令,可以看一下《Linux C語(yǔ)言編程原理與實(shí)踐》此課。
老師告訴你能學(xué)到什么?
1、預(yù)處理是干什么的 2、結(jié)構(gòu)體是什么 3、公用體是什么 4、位運(yùn)算是怎么回事 5、如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)體 6、遞歸的原理

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無(wú)需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!