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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
  • 1、左移n位,就是乘以2的n次方
    查看全部
  • while{p!=null} printf{%d/n,%d/n,price,atk};p=p>-next;

    查看全部
  • 結(jié)構(gòu)體三種表達(dá)方法,這個最好用。

    查看全部
  • 9717@6他說我是6小-
    查看全部
    1. &、|、^、~、<<丶>>邏輯運算符。
    查看全部
  • vim helloword.c

    #include<stdio.h>

    #definr R 10 ? ? //R就是宏,結(jié)尾不用分號隔開。

    int main()

    {

    int a = R;

    printf("%d\n",a);

    printf("helloworld\n");

    return 0 ;

    ?}

    編譯程序:gcc helloworld.c

    查看運行效果:./a.out

    結(jié)果為:a=10

    ?????????????? helloworld

    查看預(yù)處理之后的文件:gcc -0 helloworld.i helloworld.c -e

    回車

    gcc -o helloworld.i helloworld.c -E

    vi helloworld.i

    宏不考慮語法

    查看全部
  • ----------------------------------------------------------

    -? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?靜態(tài)鏈表????????????????????????????? ? ?-

    ----------------------------------------------------------


    #include <stdio.h>

    #include <string.h>


    struct weapon{

    ? ? int price;

    ? ? char atk[20];

    ? ? struct weapon * next;

    }wea1,wea2,wea3,wea4,*head;


    void main(){

    ? ? // 賦值

    ? ? wea1.price = 100;

    ? ? strcpy(wea1.atk,"AWM");

    ? ? wea2.price = 200;

    ? ? strcpy(wea2.atk,"sass");

    ? ? wea3.price = 300;

    ? ? strcpy(wea3.atk,"98K");

    ? ? wea4.price = 400;

    ? ? strcpy(wea4.atk,"AK-47");

    ? ? //設(shè)置指針

    ? ? wea1.next = &wea2;

    ? ? wea2.next = &wea3;

    ? ? wea3.next = &wea4;

    ? ? wea4.next = NULL;

    ? ? //頭指針指向wea1

    ? ? head = &wea1;

    ? ? //通過指針打印 weapon 變量

    ? ? struct weapon * p;

    ? ? p = head;

    ? ? while(p!=NULL){

    ? ? ? ? printf("%d , %s\n",p->price,p->atk);

    p = p->next;

    ? ? }

    ? ? printf("output wea1 is :%s;output &wea1 is :%s\n",wea1,&wea1);

    ? ? printf("%s\n",&wea1.atk);?


    }

    ----------------------------------------------------------

    -? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?執(zhí)行結(jié)果? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -

    ----------------------------------------------------------


    100 , AWM

    200 , sass

    300 , 98K

    400 , AK-47

    output wea1 is :d;output &wea1 is :d

    AWM

    查看全部
  • .c文件? --> .i文件? --> .s文件? --> .o文件? --> 可執(zhí)行文件

    ? ? ? ?預(yù)處理? ? ? ?編譯? ? ? ? 匯編? ? ? ? 鏈接? ??


    --在預(yù)處理階段除了展開頭文件,其次就是進(jìn)行宏替換

    #define R 3.14

    ...

    float a = R

    ...

    宏替換后:..a=3.14 ...(宏的本質(zhì)就是單純的發(fā)生在預(yù)處理階段的字符串替換==> 即,宏不考慮語法,就是單純的字符串替換!?。?



    # 看一下在預(yù)處理中程序做了什么事情:語句代表將 helloworld.c 文件進(jìn)行預(yù)處理,然后結(jié)果輸出到 .i 文件中去

    gcc -o helloworld.i helloworld.c -E

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

    # -o <文件>? 輸出到 <文件>。

    查看全部
  • #include <stdio.h>

    //這個宏脫離了傳參類型的限制,類似 Java 中的泛型;傳入兩個參數(shù),對其進(jìn)行加法運算。

    #define ADD(a,b) (a+b)

    ??

    //結(jié)構(gòu)體變量定義、初始化和引用的過程

    struct weapon{

    ? ? char name[20];

    ? ? int atk;

    ? ? float price;

    }weapon_1;


    struct{

    ? ? char name[20];

    ? ? int age;

    }people;


    //共用體

    //union 所有成員共享一塊內(nèi)存地址

    union data{

    ? ? int aa;

    ? ? char bb;

    ? ? float cc;

    };

    //相同結(jié)構(gòu)的 結(jié)構(gòu)體 和 公共體,打印他們的大小,看其占用內(nèi)存空間的規(guī)則

    struct data_str{

    ? ? int aaa;

    ? ? char bbb;

    ? ? float ccc;

    };


    int main(){

    ? ? // 定義結(jié)構(gòu)體變量的同時賦值

    ? ? struct weapon weapon_2={"ak-47",10,9.9};

    ? ? //已經(jīng)定義好的結(jié)構(gòu)體變量賦值

    ? ? weapon_1.name[0]='A';

    ? ? weapon_1.name[1]='W';

    ? ? weapon_1.name[2]='M';

    ? ? weapon_1.atk=20;

    ? ? weapon_1.price=19.9;

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

    ? ? struct weapon weapon_3[2] = {

    ? ? ? ? ? ? {"java",30,18.8},

    ? ? ? ? ? ? {"php",40,29.9}

    ? ? };

    ? ? //沒有結(jié)構(gòu)體名的結(jié)構(gòu)體

    ? ? people.age=18;

    ? ? //結(jié)構(gòu)體指針

    ? ? struct weapon * w2;

    ? ? w2 = &weapon_2;

    ? ? //結(jié)構(gòu)體數(shù)組指針

    ? ? struct weapon * w1;

    ? ? w1=weapon_3;

    ? ? //共用體

    ? ? union data data_union;


    ? ? printf("weapon_1: %s,%d,%f\n",weapon_1.name,weapon_1.atk,weapon_1.price);

    ? ? printf("weapon_2:%s,%d,%f\n",weapon_2.name,weapon_2.atk,weapon_2.price);

    ? ? printf("wwapon_3: %s,%s\n",weapon_3[0].name,weapon_3[1].name);

    ? ? printf("people.age is %d\n",people.age);

    ? ? printf("w1[0] is : %s\n",w1->name);

    ? ? w1++;

    ? ? printf("w1[1] is : %s\n",w1->name);

    ? ? //結(jié)構(gòu)體指針,加括號是因為點的優(yōu)先級高于星的優(yōu)先級。一樣的結(jié)果

    ? ? printf("w2 is : %s,%s\n",(*w2).name,w2->name);

    ? ? //共用體(聯(lián)合? --->? ?打印發(fā)現(xiàn)地址都是一樣的(data_union.a:0xffffc4694d50)

    ? ? //表示按十六進(jìn)制輸出數(shù)據(jù),如果輸出數(shù)據(jù)不夠8位數(shù),則左邊補(bǔ)0

    ? ? printf("data_union.a:%p,\ndata_union.b:%p,\ndata_union.c:%p\n",&data_union.aa,&data_union.bb,&data_union.cc);

    ? ? //%u表示無符號10進(jìn)制整型,

    ? ? //%lu表示輸出無符號長整型整數(shù)

    ? ? printf("data_union size is :%lu\n",sizeof(data_union));

    ? ? printf("data struct size is :%lu\n",sizeof(struct data_str));

    ? ? return 0;

    }


    ------------------------------執(zhí)行結(jié)果------------------------------------

    weapon_1: AWM,20,19.900000

    weapon_2:ak-47,10,9.900000

    wwapon_3: java,php

    people.age is 18

    w1[0] is : java

    w1[1] is : php

    w2 is : ak-47,ak-47

    data_union.a:0xffffe228b730,

    data_union.b:0xffffe228b730,

    data_union.c:0xffffe228b730

    data_union size is :4

    data struct size is :12

    查看全部
  • gcc helloworld.c 四個步驟

    http://img1.sycdn.imooc.com//61baa4340001289108470112.jpg

    查看全部
  • gcc helloworld.c 四個步驟

    http://img1.sycdn.imooc.com//61baa4340001289108470112.jpg

    查看全部
  • c語言結(jié)構(gòu)體

    查看全部
  • 向左右移動n位就是乘除2的n次方
    查看全部
  • 動態(tài)鏈表 指針
    struct npc *{
    struct npc *head
    int...}*a,*b,c,d;

    a,b是指針,會指向某個地址。假設(shè)當(dāng)a指向d的地址、b指向c的地址,那么當(dāng)使用a->next=b時,實際上是d地址的next指向了c。當(dāng)a,b用&取到其他地址時,對已經(jīng)操作的d的next指向c沒有影響。也就是說a,b兩個指針就是表層工具人。
    初學(xué)者,暫時這么理解,發(fā)現(xiàn)錯誤請指出,我及時改正。
    查看全部
  • 左移運算能夠?qū)崿F(xiàn)二倍乘法,比直接乘法要快得多。

    int是定義的有符號數(shù),左移會導(dǎo)致符號位移出去,導(dǎo)致內(nèi)存溢出。

    右移不會導(dǎo)致溢出,有符號數(shù)進(jìn)行右移的時候,頭部的0會保存,1會重新設(shè)置在頭部。

    查看全部
  • 異或:進(jìn)行定位翻轉(zhuǎn)(0變1,1變0)

    查看全部
  • 按位或:用于設(shè)定指定位(比如與ff相或,可以將低八位設(shè)置為1)

    查看全部
  • 按位與用法:清零,保留指定位置的數(shù)。

    查看全部
  • malloc函數(shù)的使用要調(diào)用malloc.h的頭文件。

    malloc函數(shù)后面的sizeof主要用于指示分配內(nèi)存的大小,由于malloc函數(shù)默認(rèn)返回void類型(無類型,一般用于無返回值的函數(shù)。)

    create函數(shù)的創(chuàng)建如下所示:

    查看全部
  • 靜態(tài)數(shù)據(jù)結(jié)構(gòu):整型、浮點型、數(shù)組(內(nèi)存空間和里面的內(nèi)容是定義好的)

    查看全部
  • 鏈表由一個個節(jié)點組成,每個節(jié)點都包含了數(shù)據(jù)和下一個節(jié)點的地址兩部分。

    數(shù)組是連續(xù)的內(nèi)存空間,鏈表不一定連續(xù)。

    上圖顯示如何設(shè)計并訪問靜態(tài)鏈表。

    其中p->atk和(*p).atk表達(dá)效果一致。

    查看全部
  • 定義了union類型之后,data里面的內(nèi)容都是占用的同一個內(nèi)存空間。

    所以12行后,給a賦值之后,b其實就不起作用了。

    共用體占用的內(nèi)存是所有元素當(dāng)中占用最長的那個的內(nèi)存。

    共用體幾個成員的地址都是一樣的。

    結(jié)構(gòu)體的占用內(nèi)存,不是單純地將元素的內(nèi)存大小進(jìn)行累加(計算機(jī)將其內(nèi)存重新規(guī)劃了一下,提高了運行效率,用空間換時間)。

    首先判斷所有元素的偏移地址(相對結(jié)構(gòu)體第一個內(nèi)存地址的偏移量),a是0,b是4(a的內(nèi)存字節(jié)數(shù)),c是5(a和b相加)。之后看一下每個元素的偏移地址,是不是他們自身占用的字節(jié)數(shù)的整數(shù)倍,比如c的偏移量是5個字節(jié),占用了4個字節(jié),這個時候在c的前面加上3個字節(jié)的內(nèi)存補(bǔ)空,讓c的偏移量變成8個字節(jié),是4個字節(jié)的兩倍。

    之后,還要判斷結(jié)構(gòu)體總體的內(nèi)存,是不是最大元素所占內(nèi)存的整數(shù)倍,如果不是就在結(jié)構(gòu)體最后補(bǔ)充字節(jié)數(shù),直到滿足要求。

    %lu表示長整型,sizeof()用于輸出內(nèi)存大小。

    %p表示地址,后面接&xxx輸出內(nèi)存地址。

    查看全部
    0 采集 收起 來源:Linux C公用體

    2021-07-26

  • 15-17行定義并輸出結(jié)構(gòu)體變量的相關(guān)屬性(*w的()不能省略,因為.運算符優(yōu)先級比*高)

    可以用w->name來替換*w.name

    24行定義的指針p->name指向weapon_2數(shù)組第一個元素?

    26行的p++表示p已經(jīng)指向下一個元素。

    查看全部
  • 結(jié)構(gòu)體變量weapon_1通過第12行語句定義,可以通過第13行的.運算符獲得相關(guān)的值。

    第15行定義weapon_2數(shù)組,有兩個元素,每個元素都有結(jié)構(gòu)體里定義的三種屬性。(可以將每個成員的3個屬性分別用{}括起來,方便看)

    16行展示了如何調(diào)用結(jié)構(gòu)數(shù)組中每個成員的各種屬性。

    查看全部
  • struct定義方式:
    1. 定義類型 struct xx {};
    2. 定義類型并聲明一個全局變量 struct xx {} xx_1;
    3. 定義一個結(jié)構(gòu)體 struct {} xx_1;


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

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

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

    typedef VS define:

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

    ②作用域不同

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

    size_t : unsigned long的別名

    查看全部
  • 我們正常定義一個函數(shù)需要聲明參數(shù)類型,int a之類的,用宏定義函數(shù),就不用考慮c語法。

    查看全部
首頁上一頁1234567下一頁尾頁

舉報

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

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

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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