C語言基礎

2021-07-14 17:55:07 字數 1423 閱讀 5783

1.c語言之父:dennis ritchie(丹尼斯.里奇)

2嵌入式為什麼會選擇c語言作為開發工具?

主要原因是作業系統的核心都是c語言來寫的,那麼c語言一定有有別於其他高階語言的優點,程式設計師才會選擇c語言編寫核心

特點(1)c語言相容性好,有出色的平台移植性,能在多種不同體系的軟硬平台執行。

(2)c語言能直接訪問硬體,具有簡潔緊湊,使用靈活的語法機制。

(3)c語言執行效率高,因為作業系統掌控硬體資源,c語言能直接訪問硬體。

c語言和彙編都能直接訪問硬體,為什麼核心不用彙編編寫?

彙編不能實現複雜的功能,但彙編效率更高,常用於簡單硬體的初始化。

3.c語言的標準

k&rc標準 ansic/c89標準 c99標準 c11標準

4.資料型別

定義:資料集合的劃分,不同的資料型別對cpu的意義是不一樣的

基本資料型別:空型別,字元型,數值型(實型和整型)

復合資料型別:陣列,結構,聯合,列舉,指標

強制轉化

範例:int num=5;

int *p=#

char *ptr=(char*)p;

隱式型別轉化:char5 sizeof和strlen的比較

1 sizeof(...)是運算子,在標頭檔案中typedef為unsigned int,其值在編譯時即計算好了,引數可以是陣列、指標、型別、物件、函式等。

當引數分別如下時,sizeof返回的值表示的含義如下:

陣列——編譯時分配的陣列空間大小;

指標——儲存該指標所用的空間大小(儲存該指標的位址的長度,是長整型,應該為4);字串計算null

型別——該型別所佔的空間大小;

物件——物件的實際占用空間大小;

函式——函式的返回型別所佔的空間大小。函式的返回型別不能是void。

2strlen(...)是函式,要在執行時才能計算。引數必須是字元型指標(char*)。當陣列名作為引數傳入時,實際上陣列就退化成指標了。

6.變數

變數的三大特點:

變數的資料型別:主要說明變數占用記憶體空間的大小

變數的作用棧:變數的有效性範圍

變數的儲存型別:變數在記憶體中的儲存方式

記憶體分配

1g分配給核心,使用者無權訪問,3g分配給棧空間,堆空間,資料段和**段

棧空間存放:區域性變數,函式形參,自動變數

堆空間存放:malloc ralloc calloc分配的空間

資料段又分為bss段,rodata段,data段

bss段儲存未初始化的全域性變數

rodata存放常量

data段(靜態資料段)全域性變數,static,修飾變數

7.宣告與定義

定義:建立乙個變數,為其分配記憶體空間,並為它取名字,乙個變數只能定義一次

宣告:告知編譯器,變數名已經匹配在一塊記憶體,但未分配記憶體。

c 語言基礎

三個訪問描述符 public private 和protected 都可以修飾類的資料成員和成員函式 public 可以可以被任何訪問,private 只能被該類的公,私成員函式,該類的友元函式或者友元類的成員函式訪問。protected 只能被該類的公,私成員函式和該類的派生類訪問。c 中除了,和...

c語言基礎

1.問題描述 從鍵盤輸入三個整數,分別存入x,y,z三個整型變數中,計算並輸出三個數的和以及平均值。輸入形式 從鍵盤輸入三個整數,整數之間以空格隔開。輸出形式 在螢幕上分兩行顯示結果 第一行為三個數的和,整數形式輸出 第二行為三個數的平均值,浮點數形式輸出,小數點後保留兩位小數。輸入樣例 3 2 3...

C語言基礎

找最大最小整數 2.問題描述 編寫乙個程式,使用者輸入若干整數,試找出其中的最大數和最小數。輸入形式 使用者在第一行待輸入資料個數,在第二行輸入資料。輸出形式 程式在下一行輸出資料的最大值和最小值 樣例輸入 589 62 96 74 52 樣例輸出 96 52 樣例說明 使用者第一次輸入的為資料個數...