亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

趣味 C++ 入門

難度入門
時長 3小時22分
學習人數
綜合評分9.63
19人評價 查看評價
9.4 內容實用
9.9 簡潔易懂
9.6 邏輯清晰
  • 定義結構體
    struct students
    {
    ????? int math;
    ????? int eli;
    }
    這樣struct student就相當于一種類型
    在定義時
    struct student stu[ ]這樣定義的數組就是他們的結合體
    那么該里面的數據就是這樣
    stu[20].math=69要指明哪一個
    stu[20]. eli=79
    查看全部
  • 堆上管理指針變量 需要手動分配內存大小 介紹后手動釋放銷毀

    查看全部
  • 棧 先進后出 用于作用域內的內存釋放 自動管理

    查看全部
  • 指針變量存放的是地址

    查看全部
  • #include <stdio.h>
    ?? int main<int argc char **argv>
    {
    ?????? printf (Hello World,this is C style/n)
    ?????? return 0;
    }
    ????????
    ??
    ???
    查看全部
    0 采集 收起 來源:動手寫一寫

    2022-10-29

  • ?char 類型的范圍是 [-128, 127],而 unsigned char 類型的范圍是 [0, 255]。
    查看全部
  • 那么如果我們將 8 個 bit 組合起來,通過排列組合,我們就可以得到 2 的 8 次方,也就是 256 個數字的數據容量。在計算機中,我們把 8 個 bit 的容量稱之為 1 個 byte, 中文叫做字節。8bit = 1 byte
    查看全部
  • ,計算機是二進制的。那么如何存放更復雜的數據呢?答案是排列組合。
    在計算機中,存在這樣的一個存儲單元,一個存儲單元可以存放 0 或者 1 兩種狀態,那么他就能存放兩個數字。我們管這樣一個存儲單元叫做 1bit,中文叫做 1 位。
    查看全部
  • 我們在定義數組的時候,常常這樣定義,int arr[5];

    在 C++ 中,數組表示的是一段連續的內存存儲空間

    http://img1.sycdn.imooc.com//6353ff900001629e03670096.jpg

    如上圖,每個元素之間是沒有空隙的,這樣每個元素的內存地址,其實也是有規律可循的??梢詫戇@樣一個程序,來驗證我們的想法:

    include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?int array[5];
    ? ?printf("array[0]: %p\n", &array[0]); // %p 用來打印數組的地址
    ? ?printf("array[1]: %p\n", &array[1]);
    ? ?printf("array[2]: %p\n", &array[2]);
    ? ?printf("array[3]: %p\n", &array[3]);
    ? ?printf("array[4]: %p\n", &array[4]);

    ? ?return 0;
    }

    程序運行結果如下:

    array[0]: 0x7ffee9d81490
    array[1]: 0x7ffee9d81494
    array[2]: 0x7ffee9d81498
    array[3]: 0x7ffee9d8149c
    array[4]: 0x7ffee9d814a0

    指針的地址以16進制的方式輸出,可以看出,這幾個地址中,每兩個相鄰的地址都相差 4 ,而每一個元素都是 int類型,int 占 4 個字節大小,說明他們確實是緊密相連的。

    驗證了數組的地址之后,再來看看數組是如何訪問數組中的元素的。假設我們想要訪問第 2 個元素(從 0 開始)

    array[1];

    那么 C++ 在碰到這行代碼的時候,是先拿到第 2 個元素的地址,然后通過地址去訪問元素,那么如何拿到第二個元素的地址呢?剛剛的實驗證明,數組中元素的地址都是等差的,所以只要拿到第一個元素的地址,再加上相應元素的偏差,就可以拿到第二個元素的地址了。

    那么,對于數組來說,第一個元素的地址是什么的?答案是數組名。

    我們再嘗試寫一個測試程序

    #include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?int array[5];
    ? ?printf("array: %p\n", array);
    ? ?printf("array[0]: %p\n", &array[0]); // %p 用來打印數組的地址
    ? ?printf("array[1]: %p\n", &array[1]);
    ? ?printf("array[2]: %p\n", &array[2]);
    ? ?printf("array[3]: %p\n", &array[3]);
    ? ?printf("array[4]: %p\n", &array[4]);

    ? ?return 0;
    }

    程序運行結果如下:

    array: 0x7ffeefa29490
    array[0]: 0x7ffeefa29490
    array[1]: 0x7ffeefa29494
    array[2]: 0x7ffeefa29498
    array[3]: 0x7ffeefa2949c
    array[4]: 0x7ffeefa294a0

    我們發現,直接輸出 array 和首元素的地址,是一模一樣的,那么就可以得出一個結論:數組名是一個指向數組首元素的指針

    但是這個指針和我們常見的指針有一些不一樣的地方,這個指針是一個常量,所以我們是不可以對其進行修改的。也就是說,我們不能對其進行 array = p 或者 array++ 這樣包含重新賦值的操作,但是我們仍然可以用指針的用法來操作他。

    例如,使用指針的加減法來訪問對應的元素

    #include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?int array[5];
    ? ?*(array + 2) = 1;

    ? ?return 0;
    }

    代碼中的?*(array + 2) = 1;?就等價于?array[2] = 1;

    指針篇

    我們在前面講過 malloc 分配內存的用法。來看一個例子

    #include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?int * p = (int *)malloc(5 * sizeof(int));

    ? ?free(p);
    ? ?return 0;
    }


    在上面的程序中,我們分配出來了一個 5 個 int 大小的儲存空間:

    在這塊儲存空間內,可以存放 5 個 int 類型的數字,假如想要訪問第 3 個數字,我們可以把指針向后移動兩個元素的位置,寫成?*(p + 2)

    那么指針可不可以按照數組的訪問方式去訪問呢?p[2]

    其實也是可以的,p[2]和*(p + 2)在這里是等價的。



    查看全部
  • enum 枚舉類型 枚舉類型函數里面 每個枚舉的量都是用","隔開的。

    enum?Week?
    {
    ????Mon,?//?星期一
    ????Tue,?//?星期二
    ????Wed,?//?星期三
    ????Thu,?//?星期四
    ????Fri,?//?星期五
    ????Sat,?//?星期六
    ????Sun,?//?星期日
    };

    int?main(int?argc,char?**argv)
    {
    ????Week?week?=?Week::Fri;

    ????return?0;
    }在這段程序里,week 這個枚舉變量,只能是定義好的 7 個值,不能是其他的值,而且在賦值的時候,你可以直接看出來這個值是什么,而不用再去和數字進行對應。這樣就可以最大限度得減少出錯的可能性了。對于例如星期,季節,性別之類的概念,我們應該優先使用枚舉類型。

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

    #include<iostream>

    struct Student

    {


    ? ? int math;

    ? ? int english;


    };


    int main(int argc,char **argv)

    {


    ? ? struct Student stu[50];

    ? ? //其中一個學號為:21的學生成績賦值


    ? ? stu[20].math = 100;


    ? ? stu[20].english = 98;


    }

    查看全部
  • 那么布爾類型和關系運算符有什么聯系呢?我們都知道,關系運算用來計算的是兩個量之間的關系的,這種關系,其實就是布爾類型。也就是說,關系運算的結果,就是布爾類型。

    需要注意的是,在早期的 C++ 中是沒有 bool 類型的,在沒有 bool 類型的年代,人們常用普通的整型來表示二值化語義,即 0 表示 false,非 0 表示 true。后來這種使用習慣被傳承到今天,因此,有時候也會用普通的整型代替 bool 類型。

    查看全部
    0 采集 收起 來源:關系運算符

    2022-10-22

  • 我們把焦點放到這個?int a;?上面。在 C++ 中,我們通常管這行代碼叫做聲明了一個變量,這個變量的名字叫做 a,而前面的 int,表示這個變量可以存放一個整型的數據類型,整型的意思就是整數。這里的變量,雖然和我們數學中的變量不完全相同,但是卻是非常相近的概念。

    #include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?int a;
    ? ?return 0;
    }

    可以看到,聲明常量和聲明一個變量非常像,不一樣的地方就是在前面加了一個 const。這個 const 代表的就是不可變的。
    #include <stdio.h>

    int main(int argc,char **argv)
    {
    ? ?const int c = 10;
    ? ?return 0;
    }

    查看全部
  • break 跳出循環;continue 如果符合條件執行了continue,那么continue后的循環指令不再執行;而是從新一輪的下一個循環重新開始。

    查看全部
    0 采集 收起 來源:break和continue

    2022-10-21

  • s?w?itch 接受了一個變量s;之后用case分情況, case后接的括號里只能是常量。 case(常量)

    都不符合所列的若干case,用default表示不符合上述所有的情況。

    查看全部

舉報

0/150
提交
取消
課程須知
本門課程使用 Windows 平臺下的 Visual Studio 作為開發工具,所以你要準備一臺 Windows 系統的電腦。當然,本門課程中介紹的所有代碼,并不是只能在 Windows 下運行,你同樣可以嘗試使用 Mac OS X 或者 Linux 或者其他的平臺進行學習,我們也鼓勵你進行這樣的嘗試。
老師告訴你能學到什么?
掌握在 Windows 下搭建 C++ 開發環境,了解 C++ 的基礎概念,例如變量,指針等。了解計算機的一些基礎知識,內存布局等。除此之外,本課程還將介紹一些編程小技巧,以及編程的代碼規范。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!