色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 嵌入式學習——掌握基礎技術很重要

嵌入式學習——掌握基礎技術很重要 時間:2022-05-26      來源:華清遠見
所有的技術原理和本質都在基礎技術上,只有基礎技術才能讓你上升到更高層次,在技術的世界里,量變無法導致質變,掌握基礎技術及原理可以讓自己推導答案和趨勢。

 

C語言學習目標

 

掌握C語言的語法規則,數組,循環,函數,指針等。

 

要學會一些算法,比如冒泡排序,快速排序,遞歸等。

 

在學習的過程中理解什么是面向過程,為將來學習c艸,Java等面向對象語言做準備。

 

如何學習C語言

 

掌握基礎知識,為將來進一步學習打下良好的基礎

 

上機實踐,通過大量的例題學習怎么設計算法,培養解題思路

 

養成良好的編程習慣,注釋一定要寫,不然一周后自己寫的代碼都不認識了

 

這三行代碼作用

 

#include<stdio.h>//頭文件

 

int main()//主函數,main函數程序的入口必有而且只能有一個

 

 

for (int i = 0; i < 10; i++) 

 

 

printf("%d\n", i);//這個輸出函數不是C語言自帶的,而是包含在庫函數<stdio.h>里面

 

 

return 0;//將結果返回到函數調用處

 

 

怎么解決學習C語言過程中遇到的問題 

 

問題分析:對上級分配的工作要進行認真的分析,研究所給出的條件,分析最后應該達到的目標,找出解決問題的規律,選擇解題的方法。 

 

設計算法:例如要解一個方程式,就要選擇用什么方法求解,并且把求解的每一步清晰的寫出來。

 

編寫程序:根據得到的算法,用c語言編寫出源代碼,在寫代碼的過程中盡可能的添加注釋。

 

編譯源程序:對源程序進行編輯、編譯和連接,得到可執行程序,如果編譯不通過,根據報錯提醒,解決報錯。

 

運行程序、分析結果:能得到程序不一定意味著程序就是正確的,要對結果進行分析,看它是否合理。 

 

編寫程序文檔:許多程序是提供給別人使用的,提供給用戶使用的程序,必須有說明書。內容包括:程序名稱、功能、運行環境、程序的裝入和啟動、需要輸入的數據,以及其他注意事項。 

 

c語言代碼結構 

 

一個程序由一個或者多個源程序文件組成,一個規模較小的程序,往往只包括一個源程序文件,一個源程序文件包括3部分: 

 

1、預處理指令,由預處理得到的結果與程序其他部分一起,組成一個完整的、可以用來編譯的最后的源程序,然后由編譯程序對該源程序正式進行編譯,才能得到目標程序。

 

2、全局聲明,即在函數之外進行數據聲明。 

 

3、函數定義,自己定義的函數

 

函數是c程序的主要組成部分 

 

1、程序的幾乎全部工作都是由各個函數分別完成的,函數是c程序的基本單位,在設計良好的程序中,每個函數都用來實現一個或幾個特點的功能. 

 

一個函數包括兩部分

 

1、函數首部,即函數的第一行,包括函數名、函數類型、函數屬性、函數參數、參數類型。 

 

2、函數體,包括聲明部分和執行部分。

 

函數總是從main函數開始的

 

1、不管main函數在整個程序中的位置如何,main函數可以放在程序的開頭,也可以放在程序的結尾,或在一些函數之前,或一些函數之后。

 

程序中對計算機的操作是由函數中的c語句完成的 

 

1、如賦值,輸入輸出數據的操作都是由相應的c語句實現。

 

在每個數據聲明和語句的最后必須有一個分號

 

1、分號是c語句的必要組成部分。

 

C語言本身不提供輸入輸出語句 

 

1、輸入和輸出的操作是由庫函數scanf和printf函數來完成。 

 

程序應當包含注釋

 

1、一個好的、有使用價值的源程序都應當加上必要的注釋,增加程序的可讀性。

 

常量:在程序運行過程中,其值不能被改變的量稱為常量。 

 

分為以下幾類:

 

1、整型常量

 

2、實型常量

 

3、字符常量(分為普通字符和轉義字符) 

 

4、字符串常量

 

5、符號常量 

 

變量:變量代表一個有名字的,具有特定屬性的一個存儲單元。 

 

常變量:c99允許使用常變量,常變量具有變量的基本屬性只是不允許修改。 

 

#include<stdio.h>//頭文件 

 

#define PI 3.14//屬于常變量聲明了PI的值是3.14,PI的值就不能改變 

 

int main()//主函數 

 

 

int number = 5;//number是個變量,5是個常量 

 

float number_2 = 1.234; 

 

double number_3 = 3.5678;//number_2和number_3屬于實型變量,后面的值是常量 

 

char character = 'a';//character是字符變量,'a'是字符常量 

 

return 0; 

 

 

浮點類型 

 

1、單精度浮點類型:float

 

2、雙精度浮點類型:double 

 

3、復數浮點型:float_comlex,double_comple,long long_comple  (編譯系統為每一個float型變量分配4個字節,數值以規范化的二進制數指數形式存放在存儲單元中)(double型為了擴大能表示的數值范圍,用8個字節存儲一個double型數據,可以得到15位有效數字) 

 

枚舉類型:enum

 

字符和字符代碼 

 

1、字母

 

2、數字 

 

3、專門符號 

 

4、空格符 

 

5、不能顯示的字符 

 

字符變量 

 

1、字符變量是用類型符char定義字符變量 

 

整型變量    (注意:這里占多少個字節跟系統和編譯器規定有關!可以在編譯器上自己試試查看) 

 

1、基本型:類型說明符為int在內存中占2個字節或4個字節(vs2022中是4個字節) 

 

2、短整型:類型說明符為short int或short  (vs2022中是2個字節)

 

3、長整型:類型說明符為long int 一個long int型變量的值的范圍是-2的31次方~2的31次方-1,即-2147483648~2147483647.,(vs2022中是4個字節) 

 

4、雙長整型:long long int    (vs2022中是8個字節,這個是c99新增的類型) 

 

標識符:用來對變量、符號常量名、函數、數組、類型等命名的有效字符序列統稱為標識符。 

 

c語言規定標識符只能由字母、數字和下劃線3種字符組成,且第1個字符必須為字母或下劃線。

 

C語言%求余

 

#include<stdio.h> 

 

int main() 

 

 

int num1, num2;

 

num1 = 4;

 

num2 = 3;//如果后一個數比前一個大,求余的值就還是前一個數 

 

printf("兩數求余的值:%d\n", num1 % num2); 

 

 

C語言算術表達式和運算符的優先級與結合性 

 

1、在表達式求值時,先按運算符的優先級別順序執行,例如先乘除后加減。如果在一個運算對象兩側的運算符的優先級別相同,則按照結合方向“自左至右”即先左后右執行。

 

c語言強制類型轉換運算符 

 

1、一般形式:(類型名)(表達式) 

 

(double)a:將a轉換成double類型

 

(int)(x+y):將x+y的值轉換成int類型 

 

c語言常用運算符總結 

 

1、算術運算符:+   -   /   %   ++   -- 

 

2、關系運算符:>  <  ==  > = <  !=

 

3、邏輯運算符:! &&   || 

 

4、位運算符:<<  >> ~ | ^ & 

 

5、賦值運算符:= 

 

6、條件運算符:?: 

 

7、逗號運算符:  ,

 

8、指針運算符:* 

 

9、求字節運算符: sizeof 

 

10、強制類型轉換運算符: (需要強制轉換的類型)

 

11、成員運算符:.  -> 

 

12、下標運算符:[]

 

13、函數調用運算符:函數名() 

 

c語言關系運算符是什么 

 

在c語言中,比較符稱為關系運算符,所謂關系運算就是比較運算,將兩個數值進行比較,判斷其比較的結果是否符合給的條件。 

 

#define _CRT_SECURE_NO_WARNINGS //忽略安全檢測,不然使用scanf會報錯 

 

#include<stdio.h> 

 

int main()

 

 

int num; 

 

scanf("%d", &num); 

 

if (num<5) 

 

{

 

printf("num小于5");

 

}

 

else 

 

 

printf("unm不小于5"); 

 

 

 

c語言邏輯運算符優先次序 

 

1、有3種邏輯運算符:與(AND),或(OR),非(NOT)。在basic和pascal等語言可以在程序中直接用and,or,not作為邏輯運算符。在c語言中不能在程序中直接使用,而是用其他符號代替。

 

2、!(非)  &&(與)  ||(或) 中“!”優先級最高。

 

3、邏輯運算符中的“&&”和“||”低于關系運算符,“!”高于算術運算符。 

 

4、&&和||是雙目運算符,它要求有兩個運算對象(操作數),!是一目運算符,只要求有一個運算對象。 

 

c語言邏輯表達式

 

邏輯表達式的值應該是一個邏輯量“真”或“假”。C語言編譯系統在表示邏輯運算結果時,以數值1代表“真”,以0代表“假”,但在判斷一個量是否為“真時”,以0代表“假”,以非0代表“真”。即將一個非零的數值認作“真”。 

 

c語言邏輯變量

 

這是c99所增加的一種數據類型。可以將關系運算和邏輯運算的結果存到一個邏輯型變量中,以便于分析和運算。定義邏輯變量用類型符Bool。(vs2022沒有這個) 

 

c語言條件運算符(三目運算符) 

 

一般形式 

 

表達式1:? 表達式2:: 表達式3 

 

條件運算符由兩個符號(?和:)組成,必須一起使用。要求有3個操作對象,稱為三目運算符。 

 

三目運算符可以這樣理解,先計算出表達式1的值,表達式1后面的問號表示“該往哪里”,有兩條路,如果表達是1的值為真(非0),自然直接到表達式2,如為假(0值),就繞過表達式2,到表達式3. 

 

條件表達式由三個運算對象和條件運算符組成 

 

c語言使用條件運算符注意事項 

 

1、條件運算符優先于賦值運算符 

 

2、表達式“2”和表達式“3”不僅可以是數值表達式,還可以是賦值表達式或函數表達式。 

 

3、條件表達式相當于一個不帶關鍵字if的if語句,用它處理簡單選擇結構可以使程序簡潔。 

 

4、三目運算符是C語言中唯一一個三目運算符。 

 

c語言printf用法 

 

1、一般格式 

 

printf(格式控制,輸出表列) 

 

格式控制是用雙引號括起來的一個字符串,稱“轉換控制字符串”,簡稱“格式字符串”, 

 

包含:(格式聲明:由%和格式字符組成,如%d、%f。)(普通字符:既需要在輸出時原樣輸出的字符。) 

 

輸出表列是程序需要輸出的一些數據,可以是常量、變量或表達式。 

 

c語言printf注意事項:輸出是以計算機為主體而言的,從計算機向輸出設備輸出數據稱為輸出,C語言本身不包含輸出語句,如果不加頭文件,代碼就會報錯。 

 

c語言scanf函數 

 

一般形式 

 

scanf(格式控制,地址表列)

 

格式控制和printf函數一樣,地址表列是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。 

 

(格式聲明只包含一部分:以%開始,以一個格式字符結束,中間可以插入附加的字符。) 

 

使用c語言scanf函數的注意事項: 

 

1、scanf函數中的格式控制后面應當是變量地址,而不是變量名。 

 

2、如果在格式控制字符串中除了格式聲明以外還有其他字符,則在輸入數據時在對應的位置上應輸入這些字符相同的字符。 

 

3、在用%c格式聲明輸入字符時,空格字符和轉義字符中的字符都作為有效字符輸入。

 

4、在輸入數值數據時,如輸入空格、回車、tab鍵或遇到非法字符時會認為你的輸入結束。 

 

C語言putchar函數 

 

想從計算機向顯示器輸出一個字符,可以調用系統函數庫中的putchar函數。 

 

一般形式

 

putchar(c)

 

putchar是put character(給字符)的縮寫,其作用是輸出字符變量c的值,顯然它是一個字符。getchar函數的值就是從輸入設備得到的字符。getchar函數只能接受一個字符。如果想輸入多個字符就要用多個getchar函數。 

 

c語言if語句的一般形式 

 

一般形式 

 

f(表達式)語句1 

 

[else語句2] 

 

if語句中的表達式可以是關系表達式、邏輯表達式,甚至還可以是數值表達式。 

 

語句1和語句2可以是一個簡單的語句,也可以是一個復合語句,還可以是其他的if嵌套。 

 

c語言if語句最常見的3種形式

 

1、沒有else子句部分

 

if(表達式)語句1 

 

2、有else子句部分 

 

if(表達式)

 

語句1

 

else

 

語句2 

 

3、在else部分又嵌套多層的if語句 

 

if(表達式1)語句1 

 

else if(表達式2)語句2 

 

else if (表達式3)語句3 

 

...... 

 

語句1、語句2.....語句m等是if語句中的“內嵌語句”,它們是if語句中的一部分。 

 

if語句注意事項:整個if語句可以寫在多行上,也可以寫在一行上。if語句無論寫在幾行上,都是一個整體,屬于同一語句。內嵌語句也可以是一個if語句。在if語句中要對給定的條件進行檢查,判斷所給定的條件是否成立。 

 

c語言switch多分支語句 

 

如果分支較多,嵌套的if語句層數多,程序繁長而且可讀性降低,因為c語言提供switch語句直接處理多分支選擇。 

 

一般形式 

 

switch(表達式) 

 

 

case 常量1:語句1 

 

case 常量2:語句2 

 

..... 

 

case 常量n:語句n 

 

default:語句n+1

 

 

例:#define _CRT_SECURE_NO_WARNINGS //忽略安全檢測,不然使用scanf會報錯 

 

#include<stdio.h>//頭文件 

 

int main()//主函數

 

{

 

char grade;//定義成績級別字符變量 

 

printf("輸入成績級別:");//提示語句 

 

scanf("%c", &grade);//鍵盤輸入

 

printf("成績段:");//提示語句 

 

switch (grade)//switch 多分支 

 

 

case'A':printf("85-100\n"); break;//輸出A的成績分布

 

case'B':printf("70-84\n"); break;//輸出B的成績分布 

 

case'c':printf("60-69\n"); break;//輸出C的成績分布 

 

case'D':printf("不及格小于60\n");//輸出D的成績分布

 

default:printf("輸入成績等級有誤\n");//輸出成績級別有誤 

 

 

return 0;//函數返回值為0

 

 

switch多分支注意事項:

 

1、switch后面括號內的“表達式”,其值的類型應為整數類型,包括字符型。

 

2、switch下面的花括號內是一個復合語句。

 

3、可以沒有default標號,此時如果沒有與switch表達式相匹配的case常量,則不執行任何語句,流程轉到switch語句的下一個語句。

 

4、各個case標號出現的次序不影響執行結果,case標號只起標記作用。

 

5、每一個case常量必須互不相同。

 

6、在case子句中雖然包含了一個以上執行語句,但可以不必用花括號括起來,會自動順序執行本case標號后面所以的語句。 

 

C語言while語句 

 

一般形式:while(表達式)語句

 

注意事項:

 

1、其中的語句就是循環體,可以是一個簡單的語句,也可以是符復合語句。執行循環體的次數是由循環條件控制的,這個循環條件就是上面一般形式中的“表達式”,也稱為循環條件表達式。

 

2、while循環可以簡單的記為,只要當循環條件表達式為真(即給定的條件成立),就執行循環體語句。

 

3、while循環特點是:先判斷條件表達式,后執行循環體語句。

 

例:#include<stdio.h>//頭文件

 

int main()//主函數 

 

{

 

int num;

 

num = 15; 

 

while (num > 10)//循環條件 

 

{

 

num--; 

 

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

 

}//循環體 

 

 

c語言do while介紹

除了while語句以外,c語言還提供了do...while語句來實現循環。

一般形式:

do 

語句

while  (表達式)

例:#include<stdio.h>//頭文件 

int  main()//主函數 

int num;//定義整型變量 

num = 15;//給num賦值15 

do//關鍵詞do

{

num--; 

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

} while (num > 10);//先運行第8行和第9行的代碼然后再判斷num是否大于10如果符合條件的話會繼續執行第8行和第9行的代碼(dowhile語句一定要有一個分號結束) 

}

c語言for語句介紹 

除了可以用while語句和do.....while語句實現循環外,c語言還提供for語句實現循環 

指針(一般用%x十六進制輸出) 

直接訪問:通過變量名直接訪問地址

間接訪問:把變量的地址放到另一個變量中,使用時先找到后者的地址,從中取出前者的地址

指針變量:存放地址的變量

struct是自定義結構體(sizeof是一個計算結構類型所占內存字節數的關鍵字)

strcpy是字符串拷貝 

常用內存管理函數有分配內存空間函數malloc 、calloc釋放內存空間函數free

動態內存分配函數

void*malloc(unsigned size)

功能:在內存的動態存貯區(堆)中分配一塊長度為size的連續空間。 

返回值:指針,存放被 分配內存的起始地址。若未申請地址,則返回null(0)。 

void*:指向任何類型的數據,在使用時,要進行強制類型轉換。 

例如:(int*)malloc(sizeof(int)) 

(struct student*)malloc(sizeof(struct student)) 

sizeof是一個運算符作用是計算需要分配的空間的字節數 

void free(void*ptr) 

功能:釋放由malloc()申請的動態內存空間,ptr存放該空間的首地址。

返回值:無。

p=(struct student*)malloc(sizof(struct student));

...... 

free(p); 

實踐才能把知識變成技能,堅持才有沉淀。 

上一篇:Linux和C語言的學習方法你真的知道嗎?

下一篇:嵌入式學習經驗貼看這一篇就夠了!

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 潮喷失禁大喷水无码 | 含羞草官网在线观看免费视频 | 久久久久人妻一区二区三区 | 免费A级毛片18禁网站免费 | 色视频综合无码一区二区三区 | 精品久久久久久无码中文字幕一区 | 国产熟妇的荡欲午夜视频 | 无码人妻少妇久久中文字幕 | 国产线播放免费人成视频播放 | 最新国产在线播放 | 国产破外女出血视频 | 国产成人午夜福利院 | 亚洲精品天堂无码中文字幕 | 超清中文乱码字幕在线观看 | 国产成人啪精品视频网站午夜 | 亚洲中文久久久久久精品 | 和大佬在一起的三百六十五天免费观看 | 中文字幕一区二区在线观看 | 国产欧美久久久精品免费 | 亚洲人交乣女bbw | 韩国无码无遮挡在线观看 | 性色黄 | 亚洲国产成人久久三区 | 国产A线视频播放 | 永久黄网站色视频免费观看 | 亚洲欧洲国产精品 | 最新无码人妻在线不卡 | 精品日产卡一卡二卡麻豆 | 黄色片视频免费观看 | 亚洲影视资源网 | mm1314午夜免费视频 | 免费看美女被靠的网站 | 久久久久99精品成人片牛牛影视 | 无码一区二区三区日韩人妻 | 国产激情不卡 | www.黄色国产 | 亚洲人成网站在小说 | 免费无码AV污污污在线观看 | 国模精品少妇 | 在线高清理伦片a | 永久免费观看美女裸体的网站 |