linux C语言基础学习总结
生活随笔
收集整理的這篇文章主要介紹了
linux C语言基础学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 一、思維導圖
- 二、linux基礎
- 1.常用命令
- 2.vim編輯器
- 3.gcc編輯器
- 三、C語言
- 1.基礎
- (1).進制
- (2)詞法符號
- (3)基本數據類型
- 2.基礎語句
- (1).注釋
- (2)輸入輸出
- (3)選擇語句
- (4)循環語句
- 3.數組
- (1)一維數組
- (2)二維數組
- 4.函數
- 總結
一、思維導圖
二、linux基礎
1.常用命令
常用命令: ls (查看目錄下的文件) mkdir(創建空目錄) touch(創建空文件) pwd(查看絕對路徑) chmod(強制修改文件文檔權限) Sudo(零時賦予管理員權限) cd(打開目錄)目錄:最開始的‘/’ == 根目錄
‘~’ ==家目錄
一個點 ‘.’ ==當前目錄
兩個點 ‘··’ ==上一目錄
/mnt/hgfs/AAA/yuan == 絕對路徑
./yuan ==相對路徑
linux文件共享目錄:/mnt/hgfs
2.vim編輯器
Vim常用的一些配置 1.安裝中文輸入法,詳情請查看CSDN牛逼大佬的文章2.顯示行數 永久顯示行數: 終端輸入vim ~/.vimrc里面是一個空白文檔, 在里面插入內容:set nu=====>>保存退出即可 臨時顯示行數:set nu3.自動縮進 在配置文件輸入:set tabstop=4 :set softtabstop=4 :set shiftwidth=4 :set expandtab當然也可以直接白嫖大佬寫好的配置文件讓你的編程體驗爽到飛起
Vim 文件名 進入vim編輯器的命令模式 編輯器下存在兩種模式 1.命令模式: 常用命令:Shift+:型命令,底行模式w 保存q 退出wq 保存并退出x 保存并退出q! 強制退出wq! 強制保存并退出%s/str1/str2/g 將str1替換成str2行操作yy 復制行nyy 復制n行p 咱貼dd 刪除ndd 刪除n行u 撤銷一步按下i、a、o進入插入模式 2.插入模式 按esc退出到命令模式3.gcc編輯器
gcc 編譯器編譯器編譯鏈接的四個步驟main.c====>>main.i====>>main.s====>>mian.o====>>main.out預處理 編譯 匯編 鏈接 源文件 預編譯文件 匯編文件 目標文件 可執行文件預處理 :gcc -E main.c -o main.i編譯 :gcc -S main.i -o main.s匯編 :gcc -c main.s -o test.o鏈接 :gcc main.o -o main 一步到位命令:gcc mian.c -o main.out gcc main.out(默認生成a.out) 打開執行文件:./main.out(打開當前目錄下的main.out文件)三、C語言
1.基礎
(1).進制
1) 十進制 decimal 10 2) 二進制 binary 1010 3) 八進制 octonary 012 4)十六進制 hexadecimal 0xc(2)詞法符號
1) 關鍵字 編譯器內定的,不需要加任何頭文件C語言中的關鍵字: 32個auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsighed void volatile while 2)標識符 自定義符號,變量(可為字母數字下劃線,不能由數字開頭) 定義變量: 存儲類型 數據類型 變量名 存儲類型:auto 自動 由編譯器根據定義的位置 自動分配內存位置 register 寄存器類型 extern 引用類型 變量不是在當前位置定義的, 用于引用其他位置(在 其 他文件中)定義的一個變量 const 常量類型 數據存放的位置 在 內存的常量區|代碼段static 靜態類型 數據存放的位置 在 內存的 靜態區 3) 運算符 特殊的運算符——三目運算符(表示非此即彼的關系) 條件表達式?語句1:語句2; 4) 分隔符 空格 回車 用于代碼的 美觀 增強可讀 5) 標點符號 參與編譯 ,C語言的標點符號有嚴格要求(3)基本數據類型
1.數據存儲
位 1bit ==0|1 字節 bytes == 8bit 千字節 kb ==1024byte 兆字節 Mb ==1024kb······ 2.基本數據類型1)整型(精確)bool 1bit 0|1char 1byte short 2byteint 4bytelong 8byte2)浮點型(非精確)float 4byte 6 (有效數據位,精確到幾位)double 8byte 15(有效數據位,精確到幾位)要點:ASCLL碼
要記住,’0’=48 ‘A’=65 ‘a’=97 空字符=0
2.基礎語句
(1).注釋
1)單行注釋 //我是單行2)多行注釋 /*··· 我是多行···*/#if 0 我是多行 為0時注釋,為1時執行,非常建議使用這種方式 #endif(2)輸入輸出
(基于標準輸入/輸入c庫,stdio.h) 1.輸入putchar(char); puts(str);printf(); printf("格式控制字符串",變量等 ); 格式化輸出如:printf("c=%d\n",c);格式聲明 占位符%+格式字符%d : 數據按 10進制 整數方式輸出 %c : 數據按 字符方式輸出 %s : 數據按 字符串方式輸出 %x : 數據按 16進制格式輸出%o : 數據按 8進制格式輸出%f : 數據按 浮點數格式輸出 %e : 數據按 指數格式輸出 %% : 輸出 '%' 字符 %.2f(精確小數點后兩位) %-4d(字符寬度為4,左對齊)轉義字符\n 換行\r 回車\0 空字符\\ 字符'\' 2.輸出getc(stdin); //從終端讀取一個字符gets(); //從終端讀取字符串 該函數不是安全的 fgets(); //從終端讀取字符串 以\n 作為結束符 scanf(); // 格式化輸入(3)選擇語句
if()語句1;else ()語句2if()語句1;else if()語句2;else if()語句3;······switch(n)//多分支語句,執行多選一操作 {case 1: 語句塊1 ; break;case 2: 語句塊2 ; break;case 3: 語句塊3 ; break;...default: 語句塊n; }switch(n)//多分支語句,若n=2,則執行語句2,語句3 {case 1: 語句塊1 ; break;case 2: 語句塊2 ; case 3: 語句塊3 ; default: 語句塊4; }(4)循環語句
1)結構:do{語句塊;}while(條件表達式);while(條件表達式){語句塊;}for( 循環量的初始化;循環條件; 循環遞推){循環體語句塊;}2)循環控制語句: break; // 跳出循環, 提前結束整個循環 continue;// 繼續 本次循環的后續 步驟不在執行, 重新開始新的循環return; // 結束函數goto; // 跳轉到指定 位置繼續執行3.數組
(1)一維數組
結構存儲類型 元素數據類型 變量名[元素個數];定義及初始化int arr1[3]={0,1,2}; //全部賦初值 int arr2[]={0,1,2}; //全部賦初值時,可省略元素個數 int arr3[3]={}; //初值為空,即全部賦值為0int arr4[3]={1}; //部分賦值,即未被賦值的自動賦值為0char str1[]="hello";char str2[]={'h','e','l','l',o'};char str3[]={'h','e','l','l',o','\0'};str1==str3;他們均為字符串數組,字符串數組結尾必須有'\0'字符串處理函數(基于string.h頭文件) #include<stdio.h>#include<string.h>char str1[]="hello",str2[]="Hello",str3[]="hello",str4[10];int main(){printf("%d\n",strlen(str1)); //求字符串長度printf("%d\n",strcmp(str1,str3)); //比較字符串printf("%d\n",strcmp(str1,str2));printf("%d\n",strcmp(str2,str1));printf("%s\n",strcat(str2,str1)); //字符串追加printf("%s\n",strcpy(str4,str1)); //字符串復制return 0;}(2)二維數組
二維數組的定義和表示: int arr[2][5];存儲類型 基本數據類型 數組名[行數][列數];二維數組的初始化:char str[2][10]={"hello","world"};int arr[2][5] = {{1,2,3,4,5} ,{ 10,9,8,7,6}};arr[0] arr[1]4.函數
#include<stdio.h> static int num=4; //全局變量,靜態區、全局區 int fun1_find_max(int a,int b,intc) //形式參數 {int max,count=4; //局部變量if(a>b&&a>c)max=a;else if(b>a&&b>c)max=b;else if(c>a&&c>b)max=b;return max; //返回值,max即為整個函數的值 }int main(){int max;max=fun1_find_max(15,7,9); //實際參數不需要寫數據類型printf("max=%d\n",max);printf("num=%d\n",num); //printf("count=%d\n",count); //count未定義return 0; }總結
linux C語言其實就是在linux系統下編寫C代碼,使用vim或者vi編輯器編寫代碼,再使用gcc編譯器編譯鏈接,使用起來更偏向底層,若你使用集成開發環境編寫代碼,是隱藏了底層邏輯的。
本章節重點內容還是C語言基礎,linux只是一個工具而已。數據類型,基本的語句等等,有幾個比較容易忽視的知識點就是,全局變量、局部變量,主要考察數據存儲類型,因為平時寫代碼都不會定義數據存儲類型,所以在這一塊還要深入學習。
當然這只是linuxC語言基礎,后期學習的指針、結構體、鏈表才是重點以及難點。在這個一提到程序員就能與“中年危機”掛鉤的時代,唯有終生學習才能立于不敗之地,能何況是小白白呢,“路漫漫其修遠兮,吾將上下而求索”。
總結
以上是生活随笔為你收集整理的linux C语言基础学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重置mysql数据库密码_重置mysql
- 下一篇: Pem私钥pkcs1和pkcs8之间互转