C語言:基礎知識

基礎C語言----基本知識

如何在虛擬機上寫代碼

1、打開終端(Ctrl+Alt+t),mkdir day01 創建目錄,cd 目錄名。
2、vim file.c,進入vim文本編輯器,輸入i,進入代碼編輯模式。
3、編寫代碼,Ctrl+x執行代碼,Ctrl+z保存退出。
4、vimtutor

第一個C語言程序:

#include 功能是把頭文件導入到當前代碼 ( stdio startand in out head )
#include <stdio.h>

main 是C代碼的執行入口,有且只能有一個。
int main()
{
printf和scanf是用來調試代碼的,它模擬從界面獲取數據、顯示數據到界面
\n是一種轉義字符,很多不能正常顯示的文件都會有一個替換的轉義字符
\r (回到行首)
\b (退格)
\\ ( \ )
%% (%)
\t (製表符)
C語言中代碼以分號爲結束標誌,; 有特殊含義。
printf(“hello world!\n”);

// 把函數的執行結果返回給調用者,結束函數的執行。
return 0;

// C語言中{ }對代碼進行劃分管理區域

編程基礎知識

編輯器:類型記事本一樣的用來編寫代碼的工具。
編譯器:負責把代碼文件翻譯成可執行程序的軟件。
gcc 是GNU社區爲編譯Linux內核開發的一款編譯器。
gcc code.c -> a.out

編譯器是如何把C代碼翻譯成可執行程序的:
1、預處理
把代碼中以#開頭的指令翻譯成標準的C代碼,生成預處理文件。
gcc -E code.c -o code.i
2、彙編
把預處理文件翻譯成彙編文件
gcc -S code.i -> code.s
3、編譯
把彙編文件翻譯成目標文件(二進制)
gcc -c code.s -> code.o
4、鏈接
把若干個目標文件合併成一個可執行文件
gcc a.o b.o c.o -> a.out

C語言的數據:

爲什麼要把數據進行分類:
1、現實社會中的數據是自帶類別屬性。
2、對數據進行分類型可以節約存儲空間、提高運行效率。

C語言中數據分類兩人大類自建(程序自己設計的,如:結構、聯合、類)和內建(C語言自帶)。

整型:

char、short、int、long、long long
有符號 signed : 它存儲數據的二進制位中最高位用來表示正負。
無符號 unsigned :它的所有的二進制位都用來存儲數據,只能表示正數。

浮點型:

float 單精度
double 雙精度
long double 高精度
浮點型數據採用的是科學計數,可以表示較大範圍的數據,但是精確度有限。
浮點型的數據由於格式特殊,所以運算的效率不高,編程時優先選擇整型。

布爾類型:C語言中沒有真正的布爾類型,若使用必須添加頭文件stdbool.h

bool true false

字符型:字符其實就是符號或圖案,在計算機中是以整數形式存儲的,當需要顯示時會根據ASCII表中的對應關係,顯示相應的符號。

‘\0’ = 0
‘0’ = 48
‘A’ = 65
‘a’ = 97

變量:

存儲數據的容器,需要先定義後使用。
定義:類型 變量名;
注意:剛定義的變量默認值是不確定的,爲了安全一定要初始化(養成良好的習慣)。

變量的取名規則(標識符的取名規則):
1、只能由字母、數字、下劃線組成。
2、不能以數字開頭。
3、不能與關鍵字重名(32個關鍵字)。
4、儘量不要超過30個字符。
5、見名知義(功能+類型+作用域+…)。

C語言中通過使用佔位符的方式來告訴printf/scanf變量的類型。

變量的輸出:printf 類型 變量名

變量的輸入:scanf 類型 變量的地址=&變量名

sizeof 計算變量的字節數。

練習:定義各類型的變量,使用scanf接收,使用printf顯示,使用sizeof計算變量的字節數。

常量:

字面值常量(代碼中能直接使用的數量:100,1000),不可被修改,存儲在一塊只有只讀權限的內存中(代碼段)。
設置字面值常量的類型:
默認是int(10)類型,或double(3.14)類型。
10u unsigned short
10U unsigned int
10u8 unsigned char
3.14f float
3.14l long double

運算符:

算術運算符:+ - * / %

/ % 除數不能爲零,如果除數爲零程序會提前死亡。
關係運算符:> < >= <= == !=
運算的結果是邏輯:true=1 false=0
==使用時常量放在左邊,變量放右邊。
num == 10;
10 == num; 防止出錯

10 < num < 100; 數學中[11,99],C語言中永遠爲真。

自變運算符:++/–

可以讓變量的值自加1或自減1(只有變量才能使用)。
前自變:++/–num,立即有效。
後自變:num++/–,下一行代碼纔會生效。
一行代碼中不要多次使用自變運算符。

邏輯運算符:&& || !

在運算之前會把運算對象轉換成邏輯值:零值轉換成假,非零值轉換成真,然後再對邏輯值進行運算,得到的結果也是邏輯值。
A && B 一假即假
A || B 一真即真
!A 對A的值求反

!比&&、||運算級別要高(單目運算符的級別都比較高)。先後順序 (not and or)
&&、|| 具有短路特性,當左邊的值已經能確定表達式的結果,右邊的值則不再計算(注意思維誤區,還可以藉此形成精簡的分支結構)。
int num = 0;
num>0 && num–;

賦值運算符及擴展:= += -= *= /= …

num += 10 <=> num = num + 10;

三目運算符:[1] ? [2] : [3];

當1的值爲真時執行2,否則執行3,類似if語句。
不能使用流程控制語句,因爲畢竟是運算符,必須要有運算結果。

字節數運算符:sizeof

1、sizeof不是函數而是運算符,而且是32個關鍵字之一。
2、只是推算表達的結果是什麼類型、佔多少個字節(取最大的),而不計算表達式。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章