摘要:友情提示先關注收藏,再查看,萬字保姆級語言從入門到精通教程。及大牛出天地開始有隨之乃有萬種語年英國劍橋大學推出了語言。
友情提示:先關注收藏,再查看,13 萬字保姆級 C 語言從入門到精通教程。
什么是計算機 ?
計算機的發明者是誰 ?
- 現在世界上***公認***的第一臺現代電子計算機是1946年在美國賓夕法尼亞大學誕生的ENIAC(Electronic Numerical Integrator And Calculator)
計算機是一種電器, 所以計算機只能識別兩種狀態, 一種是通電一種是斷電
正是因為如此, 最初ENIAC的程序是由很多開關和連接電線來完成的。但是這樣導致***改動一次程序要花很長時間***(需要人工重新設置很多開關的狀態和連接線)
為了提高效率,工程師們想能不能把程序和數據都放在存儲器中, 數學家馮·諾依曼將這個思想以數學語言系統闡述,提出了存儲程序計算機模型(這是所謂的馮·諾依曼機)
那利用數學語言如何表示計算機能夠識別的通電和斷電兩種狀態呢?
0和1更準確的是應該是高電平和低電平, 但是這個不用了解, 只需要知道計算機只能識別0和1以及存儲的數據都是由0和1組成的即可。
計算機程序是為了告訴計算機"做某件事或解決某個問題"而用"***計算機語言***編寫的命令集合(語句)
只要讓計算機執行這個程序,計算機就會自動地、有條不紊地進行工作,計算機的一切操作都是由程序控制的,離開程序,計算機將一事無成
現實生活中你如何告訴別人如何做某件事或者解決某個問題?
10111000 00000001 00000000 00000101 00000001 00000000
MOV AX, 1 ADD AX, 1
1 + 1
“初,世間無語言,僅電路與連線。及大牛出,天地開,始有 FORTRAN、 LISP、ALGOL 隨之, 乃有萬種語”
當你想了解底層原理時,你才會發現后悔當初沒有學習C語言
當你想學習一門新的語言時, 你才會發現后悔當初沒有學習C語言
當你使用一些高級框架、甚至系統框架時發現提供的API都是C語言編寫的, 你才發現后悔當初沒有學習C語言
學好數理化,走遍天下都不拍
學好C語言,再多語言都不怕
學習本套課程之前 | 學習本套課程中 | 學習本套課程之后 |
---|---|---|
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gHyaoC72-1623039894713)(https://upload-images.jianshu.io/upload_images/647982-c724f6cd01191121.png?imageMogr2/auto-orient/strip)] |
集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。
切記囫圇吞棗, 不要糾結里面的東西都是什么含義, 初學者安裝成功就是一種成功
下載Qt Creator離線安裝包:
以管理身份運行離線安裝包
下一步,下一步,下一步,等待ing…
注意安裝路徑中最好不要出現中文
對于初學者而言全選是最簡單的方式(重點!!!)
配置Qt Creator開發環境變量
你的安裝路徑/5.11.0/mingw53_32/bin
你的安裝路徑/Tools/mingw530_32/bin
手機有很多功能, “開機”,“關機”,“打電話”,“發短信”,"拍照"等等
手機中的每一個功能就相當于C語言程序中的一個程序段(函數)
眾多功能中總有一個會被先執行,不可能多個功能一起執行
想使用手機必須先執行手機的開機功能
所以C語言程序也一樣,由眾多功能、眾多程序段組成, 眾多C語言程序段中總有一個會被先執行, 這個先執行的程序段我們稱之為"主函數"
一個C語言程序由多個"函數"構成,每個函數有自己的功能
一個程序***有且只有一個主函數***
如果一個程序沒有主函數,則這個程序不具備運行能力
程序運行時系統會***自動調用***主函數,而其它函數需要開發者***手動調用***
主函數有固定書寫的格式和范寫
int main() { // insert code here... return 0;}
int call() { return 0;}
int main() { call(); return 0;}
int call(){ return 0;}int main(){ call(); printf(); return 0;}
printf("hello world/n");
#include int call(){ return 0;}int main(){ call(); printf("hello world/n"); return 0;}
int main(){ printf("hello world/n") // 如果沒有分號編譯時會報錯 return 0;}
int main(){ // 如果沒有分號,多條語句合并到一行時, 系統不知道從什么地方到什么地方是一條完整語句 printf("hello world/n") return 0;}
int main(){ printf("hello world/n"); // 這里的分號如果是中文的分號就會報錯 return 0;}
int main(){ return 0;}int main(){ // 編譯時會報錯, 重復定義 return 0;}
int call(){ // 編譯時報錯, 因為只有call函數, 沒有main函數 return 0;}
int mian(){ // 編譯時報錯, 因為main函數的名稱寫錯了,還是相當于沒有main函數 return 0;}
#include main(){ // 不會報錯 printf("hello world/n"); return 0;}
#include void main(){ // 不會報錯 printf("hello world/n"); return 0;}
int main(){ // 不會報錯 printf("hello world/n");}
#include int main(){ printf("hello world/n"); return 0;}
Tips:
語法錯誤:編譯器會直接報錯
邏輯錯誤:沒有語法錯誤,只不過運行結果不正確
*** *** ********* ******* **** **
printf(" *** *** /n");printf("*********/n");printf(" *******/n");printf(" ****/n");printf(" **/n");
printf(" *** *** /n*********/n *******/n ****/n **/n");
int i = 0;while (1) { if (i % 2 == 0) { printf(" *** *** /n"); printf("*********/n"); printf(" *******/n"); printf(" ****/n"); printf(" **/n"); }else { printf("/n"); printf(" ** ** /n"); printf(" *******/n"); printf(" *****/n"); printf(" **/n"); } sleep(1); i++; system("cls");}
_ooOoo_ o8888888o 88" . "88 (| -_- |) O/ = /O ____/`---"/____ . " //| |// `. / //||| : |||// / / _||||| -:- |||||- / | | /// - /// | | | /_| ""/---/"" | | / .-/__ `-` ___/-. / ___`. ." /--.--/ `. . __ ."" "< `.___/_<|>_/___." >""". | | : `- /`.;`/ _ /`;.`/ - ` : | | / / `-. /_ __/ /__ _/ .-` / / ======`-.____`-.___/_____/___.-`____.-"====== `=---=" ............................................. 佛祖保佑 有無BUG
━━━━━━神獸出沒━━━━━━ ┏┓ ┏┓ ┏┛┻━━━━━━┛┻┓ ┃ ┃ ┃ ━ ┃ ┃ ┳┛ ┗┳ ┃ ┃ ┃ ┃ ┻ ┃ ┃ ┃ ┗━┓ ┏━┛Code is far away from bug with the animal protecting ┃ ┃ 神獸保佑,代碼無bug ┃ ┃ ┃ ┗━━━┓ ┃ ┣┓ ┃ ┏━━┛┛ ┗┓┓┏━┳┓┏┛ ┃┫┫ ┃┫┫ ┗┻┛ ┗┻┛ ━━━━━━感覺萌萌噠━━━━━━
′′′′′′′′██′′′′′′′ ′′′′′′′████′′′′′′ ′′′′′████████′′′′ ′′`′███????███′′′′′ ′′′███?●??●?██′′′ ′′′███??????██′′′′′ ′′′███????██′ 項目:第一個C語言程序 ′′██████??███′′′′′ 語言: C語言 ′██████????███′′ 編輯器: Qt Creator ██████??????███′′′′ 版本控制:git-github ′′▓▓▓▓▓▓▓▓▓▓▓▓▓?′′ 代碼風格:江哥style ′′????▓▓▓▓▓▓▓▓▓?′′′′′ ′.???′′▓▓▓▓▓▓▓▓?′′′′′ ′.??′′′′▓▓▓▓▓▓▓? ..??.′′′′▓▓▓▓▓▓▓? ′???????????? ′′′′′′′′′███████′′′′′ ′′′′′′′′████████′′′′′′′ ′′′′′′′█████████′′′′′′ ′′′′′′██████████′′′′ 大部分人都在關注你飛的高不高,卻沒人在乎你飛的累不累,這就是現實! ′′′′′′██████████′′′ 我從不相信夢想,我,只,相,信,自,己! ′′′′′′′█████████′′ ′′′′′′′█████████′′′ ′′′′′′′′████████′′′′′ ________????? _________???? _________???? ________??_?? _______??__?? _____ ??___?? _____??___?? ____??____?? ___??_____?? ███____ ?? ████____███ █ _███_ _█_███——————————————————————————女神保佑,代碼無bug——————————————————————
#includeint main() { printf("南哥帶你裝B帶你飛"); return 0;}
#includeusing namespace std;int main() { cout << "南哥帶你裝B帶你飛" << endl; return 0;}
#import int main() { NSLog(@"南哥帶你裝B帶你飛"); return 0;}
class Test{ public static viod main() { system.out.println("南哥帶你裝B帶你飛"); }}
package mainimport "fmt" //引入fmt庫func main() { fmt.Println("南哥帶你裝B帶你飛")}
void printMap(char map[6][7] , int row, int col);int main(int argc, const char * argv[]){ char map[6][7] = { {"#", "#", "#", "#", "#", "#", "#"}, {"#", " ", " ", " ", "#" ," ", " "}, {"#", "R", " ", "#", "#", " ", "#"}, {"#", " ", " ", " ", "#", " ", "#"}, {"#", "#", " ", " ", " ", " ", "#"}, {"#", "#", "#", "#", "#", "#", "#"} }; int row = sizeof(map)/sizeof(map[0]); int col = sizeof(map[0])/ sizeof(map[0][0]); printMap(map, row, col); int pRow = 2; int pCol = 1; int endRow = 1; int endCol = 6; while ("R" != map[endRow][endCol]) { printf("親, 請輸入相應的操作/n"); printf("w(向上走) s(向下走) a(向左走) d(向右走)/n"); char run; run = getchar(); switch (run) { case "s": if ("#" != map[pRow + 1][pCol]) { map[pRow][pCol] = " "; pRow++;//3 map[pRow][pCol] = "R"; } break; case "w": if ("#" != map[pRow - 1][pCol]) { map[pRow][pCol] = " "; pRow--; map[pRow][pCol] = "R"; } break; case "a": if ("#" != map[pRow][pCol - 1]) { map[pRow][pCol] = " "; pCol--; map[pRow][pCol] = "R"; } break; case "d": if ("#" != map[pRow][pCol + 1]) { map[pRow][pCol] = " "; pCol++; map[pRow][pCol] = "R"; } break; } printMap(map, row, col); } printf("你太牛X了/n"); printf("想挑戰自己,請購買完整版本/n"); return 0;}void printMap(char map[6][7] , int row, int col){ system("cls"); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%c", map[i][j]); } printf("/n"); }}
/* R代表一個人 #代表一堵墻// 0123456 ####### // 0 # # // 1 #R ## # // 2 # # # // 3 ## # // 4 ####### // 5 分析: >1.保存地圖(二維數組) >2.輸出地圖 >3.操作R前進(控制小人行走) 3.1.接收用戶輸入(scanf/getchar) w(向上走) s(向下走) a(向左走) d(向右走) 3.2.判斷用戶的輸入,控制小人行走 3.2.1.替換二維數組中保存的數據 ( 1.判斷是否可以修改(如果不是#就可以修改) 2.修改現有位置為空白 3.修改下一步為R ) 3.3.輸出修改后的二維數組 4.判斷用戶是否走出出口*/// 聲明打印地圖方法void printMap(char map[6][7] , int row, int col);int main(int argc, const char * argv[]){ // 1.定義二維數組保存迷宮地圖 char map[6][7] = { {"#", "#", "#", "#", "#", "#", "#"}, {"#", " ", " ", " ", "#" ," ", " "}, {"#", "R", " ", "#", "#", " ", "#"}, {"#", " ", " ", " ", "#", " ", "#"}, {"#", "#", " ", " ", " ", " ", "#"}, {"#", "#", "#", "#", "#", "#", "#"} }; // 2.計算地圖行數和列數 int row = sizeof(map)/sizeof(map[0]); int col = sizeof(map[0])/ sizeof(map[0][0]); // 3.輸出地圖 printMap(map, row, col); // 4.定義變量記錄人物位置 int pRow = 2; int pCol = 1; // 5.定義變量記錄出口的位置 int endRow = 1; int endCol = 6; // 6.控制人物行走 while ("R" != map[endRow][endCol]) { // 6.1提示用戶如何控制人物行走 printf("親, 請輸入相應的操作/n"); printf("w(向上走) s(向下走) a(向左走) d(向右走)/n"); char run; run = getchar(); // 6.2根據用戶輸入控制人物行走 switch (run) { case "s": if ("#" != map[pRow + 1][pCol]) { map[pRow][pCol] = " "; pRow++;//3 map[pRow][pCol] = "R"; } break; case "w": if ("#" != map[pRow - 1][pCol]) { map[pRow][pCol] = " "; pRow--; map[pRow][pCol] = "R"; } break; case "a": if ("#" != map[pRow][pCol - 1]) { map[pRow][pCol] = " "; pCol--; map[pRow][pCol] = "R"; } break; case "d": if ("#" != map[pRow][pCol + 1]) { map[pRow][pCol] = " "; pCol++; map[pRow][pCol] = "R"; } break; } // 6.3重新輸出行走之后的地圖 printMap(map, row, col); } printf("你太牛X了/n"); printf("想挑戰自己,請購買完整版本/n"); return 0;}/** * @brief printMap * @param map 需要打印的二維數組 * @param row 二維數組的行數 * @param col 二維數組的列數 */void printMap(char map[6][7] , int row, int col){ // 為了保證窗口的干凈整潔, 每次打印都先清空上一次的打印 system("cls"); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%c", map[i][j]); } printf("/n"); }}
單行注釋
多行注釋
// 南哥 // it666.com// /* 江哥 */// 帥哥
/*// 作者:LNJ// 描述:第一個C語言程序作用:這是一個主函數,C程序的入口點 */
/* 哈哈哈 /*嘻嘻嘻*/ 呵呵呵 */
/* R代表一個人 #代表一堵墻// 0123456 ####### // 0 # # // 1 #R ## # // 2 # # # // 3 ## # // 4 ####### // 5 分析: >1.保存地圖(二維數組) >2.輸出地圖 >3.操作R前進(控制小人行走) 3.1.接收用戶輸入(scanf/getchar) w(向上走) s(向下走) a(向左走) d(向右走) 3.2.判斷用戶的輸入,控制小人行走 3.2.1.替換二維數組中保存的數據 ( 1.判斷是否可以修改(如果不是#就可以修改) 2.修改現有位置為空白 3.修改下一步為R ) 3.3.輸出修改后的二維數組 4.判斷用戶是否走出出口*/
// 2.計算地圖行數和列數int row = sizeof(map)/sizeof(map[0]);int col = sizeof(map[0])/ sizeof(map[0][0]);
/** * @brief printMap * @param map 需要打印的二維數組 * @param row 二維數組的行數 * @param col 二維數組的列數 */void printMap(char map[6][7] , int row, int col){ system("cls"); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%c", map[i][j]); } printf("/n"); }}
// 1.定義二維數組保存迷宮地圖 char map[6][7] = { {"#", "#", "#", "#", "#", "#", "#"}, {"#", " ", " ", " ", "#" ," ", " "}, {"#", "R", " ", "#", "#", " ", "#"}, {"#", " ", " ", " ", "#", " ", "#"}, {"#", "#", " ", " ", " ", " ", "#"}, {"#", "#", "#", "#", "#", "#", "#"} }; // 2.計算地圖行數和列數 int row = sizeof(map)/sizeof(map[0]); int col = sizeof(map[0])/ sizeof(map[0][0]); // 3.輸出地圖 printMap(map, row, col); // 4.定義變量記錄人物位置 int pRow = 2; int pCol = 1; // 5.定義變量記錄出口的位置 int endRow = 1; int endCol = 6; // 6.控制人物行走 while ("R" != map[endRow][endCol]) { ... ... }
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
char | short | int | long | float | double | if | else |
return | do | while | for | switch | case | break | continue |
default | goto | sizeof | auto | register | static | extern | unsigned |
signed | typedef | struct | enum | union | void | const | volatile |
這些不用專門去記住,用多了就會了。在編譯器里都是有特殊顏色的。 我們用到時候會一個一個講解這個些關鍵字怎么用,現在瀏覽下,有個印象就OK了
fromNo22 | from#22 | my_Boolean | my-Boolean | 2ndObj | GUI | lnj |
Mike2jack | 江哥 | _test | test!32 | haha(da)tt | jack_rose | jack&rose |
生活中無時無刻都在跟數據打交道
在我們使用計算機的過程中,也會接觸到各種各樣的數據
靜態的數據
動態的數據
既然硬盤的存儲空間這么大,為何不把所有的應用程序加載到硬盤中去執行呢?
1 B(Byte字節) = 8 bit(位)// 00000000 就是一個字節// 111111111 也是一個字節// 10101010 也是一個字節// 任意8個0和1的組合都是一個字節1 KB(KByte) = 1024 B1 MB = 1024 KB1 GB = 1024 MB1 TB = 1024 GB
整型常量
實型常量
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/120967.html
摘要:正式的專欄第篇,同學站住,別錯過這個從開始的文章前面學委的入門到精通專欄積累了篇文章,當然學委博客還有幾十篇應用的文章。 正式的Python專欄第9篇,同學站住...
摘要:的安裝下載好之后雙擊打開可執行安裝文件選擇安裝目錄,需要的內存較多,建議將其安裝在盤或者盤,不建議放在系統盤盤。 yolov5無從下手?一篇就夠的保姆級教程,202...
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
閱讀 2813·2021-11-16 11:44
閱讀 977·2021-10-09 09:58
閱讀 4503·2021-09-24 09:48
閱讀 4357·2021-09-23 11:56
閱讀 2414·2021-09-22 15:48
閱讀 1901·2021-09-07 10:07
閱讀 3212·2021-08-31 09:46
閱讀 513·2019-08-30 15:56