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

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

趣味 C++ 入門

難度入門
時長 3小時22分
學習人數
綜合評分9.63
19人評價 查看評價
9.4 內容實用
9.9 簡潔易懂
9.6 邏輯清晰
  • 大的放到小的

    左右兩邊標明類型

    小的放到大的

    左邊表明,右邊不表明

    查看全部
  • http://img1.sycdn.imooc.com//60fe68b60001b96f19201030.jpghttp://img1.sycdn.imooc.com//60fe68c10001b96f19201030.jpg

    #include<stdio.h>


    int main(int argc,char **argv)

    {

    ? ? int a=;

    ? ? short b=(short)a;

    ? ? return 0;

    }

    查看全部
  • enum Week { Mon, // 星期一 Tue, // 星期二 Wed, // 星期三 Thu, // 星期四 Fri, // 星期五 Sat, // 星期六 Sun, // 星期日 }; int main(int argc,char **argv) { Week week = Week::Fri; return 0; }
    查看全部
  • http://img1.sycdn.imooc.com//60fd3b230001a10707000449.jpg

    我們來看看這個函數里其他的部分。

    首先是 (int argc,char **argv) ,這是一個參數列表。我們可以看到,這里有兩個參數,第一個參數argc表示參數個數,第二個參數argv是參數組,兩個參數一起表達了這個程序的啟動參數。

    另外一個是return語句,我們可以看到 main 函數有一個返回值,這個返回表示程序的執行結果。我們這個 Hello Wolrd 程序里面,返回的是 0。0 表示程序執行成功,沒有出現問題。如果這里返回的是非 0 ,那么表示程序執行出現問題。

    查看全部
    0 采集 收起 來源:main函數

    2021-07-25

  • 一個程序里,有且只有一個 main 函數。程序從 main 函數開始執行,到 main 函數結束而終止。

    查看全部
    0 采集 收起 來源:main函數

    2021-07-25

  • #include <stdio.h>是什么意思?

    http://img1.sycdn.imooc.com//60fd381600014e9e03260452.jpg

    http://img1.sycdn.imooc.com//60fd38160001188a07470466.jpg

    在程序世界中,我們通常把外界將信息傳遞給我們的程序叫做輸入,我們程序向外界傳遞信息叫做輸出。

    http://img1.sycdn.imooc.com//60fd388f00011c5502080336.jpg

    在程序中打印Hello World!,其實就是一個標準的輸出行為,因為程序向外界傳輸了信息,這個信息就是Hello World!。

    main()函數,沒錯,就是字面上看到的意思,主函數,這是一個特殊的函數,它是程序的入口函數。一個程序里,有且只有一個 main 函數。

    向世界問好核心語句? printf("Hello World!\n");? 這句代碼的意思是向標準輸入輸出流中輸出一行 Hello World!,\n表示換行符。printf 這個功能在 stdio.h 中包含,這也就是為什么我們要在程序一開頭就 include 它的原因。

    查看全部
  • printf("int:%d\n",sizeof(int));查看字節數目

    查看全部
  • 而在計算機中,存儲數據的方式就很像電報。其實計算機中,只能存放 0 和 1 兩種不同的信號,這也就是我們通常說的,計算機是二進制的。那么如何存放更復雜的數據呢?答案是排列組合。

    那么如果我們將 8 個 bit 組合起來,通過排列組合,我們就可以得到 2 的 8 次方,也就是 256 個數字的數據容量。在計算機中,我們把 8 個 bit 的容量稱之為 1 個 byte, 中文叫做字節。8bit = 1 byte

    整型又可以分為有符號和無符號兩個大類,這里的符號,指的其實就是正負號,有符號的數據類型,可以用來存放正數和負數,而無符號的數據類型,只能用來存放正數。

    通過觀察,我們可以發現,有符號和無符號的數據容量其實是相同的,拿 char 和 unsigned char 來說,他們的容量都是 2 的 8 次方,也就是 256 個數。只不過?char 類型的范圍是 [-128, 127],而 unsigned char 類型的范圍是 [0, 255]。

    每種數據類型最大的差別就是他們所占的空間大小不一樣,更大的數據類型擁有更大的容量,這也意味著他能裝得下更多的數字,或者更多的精度。
    其實上面的表中的數據長度,只是一個常見的默認值,不同的機器會有不同的情況,C++ 標準中并沒有定義某一個數據類型必須占用多少個字節的長度,C++只定義了每種數據類型長度的一個范圍。

    short 要大于等于 char

    int 要大于等于 short

    long 要大于等于 int

    long long 要大于等于 long

    查看全部
  • 我們可以通過 printf 向控制臺輸出內容,也同樣可以使用控制臺向程序輸入內容。輸入內容,就需要用到一個函數scanf。

    函數要有返回值

    #include<stdio.h>

    #include<iostream>


    int main(int argc,char **argv)

    {

    ? ? int a=0

    ? ? int b=0

    ? ? std::cin>>a>>b;

    ? ? return 0;

    }

    scanf_s 跟printf差不多, stdcout是輸出

    stdcin是輸入

    查看全部
  • const 數據類型 變量

    查看全部
  • include <iostream>


    int main(int argc,char **argv)

    {

    ? ? std::cout << "Hello World!\n" << std::endl;

    ? ? return 0;

    最后那個是endl

    查看全部
  • std::cout << "Hello World!\n" << std::endl

    查看全部
  • 先打一拳的循環:do while 循環

    我們再來看看 do-while 循環,語法如下:

    do { } while(表達式 A)

    可以發現,do-while 和 while 是非常像的,不一樣的是,這里多了一個 do,而且 while 放到了后面。

    而 do-while 和 while 最不一樣的地方,就是 do-while 無論條件是否成立,都會先執行一次循環體內的內容。

    do-while 是一種 while 的重要補充,由 while 的先判斷再循環,變成先循環再判斷。

    我們來看這樣一段程序

    do { ? ? ... } while(false)

    這段程序中,我們直接在 while 的判斷條件中寫了一個 false。那么我們這樣做了,事實上是無法構成一個循環的。既然不是循環,那么我們為什么要這樣做呢?

    因為我們這里要利用一個循環的語法,來實現非循環的用途。

    我們在寫程序的時候,有時候會想要做一個跳過一段程序的功能。

    if(a == 12){ ? ? // 執行跳過語句 } b = a + b; b = a - b;

    例如,在上面的程序中,如果我們想要實現這樣一個需求:當 a 等于 12 的時候,就跳過b = a + b;,直接執行b = a - b;。如果 a 不等于 12,就依次執行b = a + b; b = a - b;。

    顯然,實現這樣一個功能,可以用 if 等的多分支結構:

    if(a == 12){ ? ? b = a - b; } else{ ? ? b = a + b; ? ? b = a - b; }

    但是當要跳過的語句有好多行的時候,就會顯得特別不方便。因此,我們可以嘗試利用 do-while 語法來完成。

    do { ? ? if(a == 12){ ? ? ? ? break; ? ? } ? ? b = a + b; } while(false); b = a - b;

    這樣,我們將 do-while 和 break 進行配合,完成一個和循環無關的程序結構。

    查看全部
  • 指針和數組的姻緣

    數組篇

    在前面及小結中,我們學習了指針和數組的概念,看起來這是兩個完全不同的東西。但其實他們兩者是緊密相關的,本小結我們就來探討一下指針和數組的聯系。

    我們在定義數組的時候,常常這樣定義,int arr[5];

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

    http://img1.sycdn.imooc.com//60f9b3f40001629e03670096.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 和首元素的地址,是一模一樣的,那么就可以得出一個結論:數組名是一個指向數組首元素的指針

    http://img1.sycdn.imooc.com//60f9b4350001177e06710191.jpg



    但是這個指針和我們常見的指針有一些不一樣的地方,這個指針是一個常量,所以我們是不可以對其進行修改的。也就是說,我們不能對其進行 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 大小的儲存空間:

    http://img1.sycdn.imooc.com//60f9b481000172eb06310181.jpg

    在這塊儲存空間內,可以存放 5 個 int 類型的數字,假如想要訪問第 2 個數字,我們可以寫*(p + 2)

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

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

    查看全部
  • 定義結構體的圖片60f8240b0001be6e12800800.jpg
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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