1.基本程序框架
#include <stdio.h>
int main()
{
return 0;
}
在學習C語言之初咱們不用理解它 只知道咱們須要把一條條須要執行的語句添加在這個框架以內
2.變量類型和表達式
量能夠分爲常量和變量
常量是出如今源文件中的能夠被直接識別利用的量
好比三、5.二、'h' 分別爲整數 浮點數 字符常量
變量是須要通過聲明的 可以存儲相應類型數據的量
int a;(聲明語句) 這樣聲明瞭一個變量 它的名稱(標識符)爲a
變量的聲明是開闢內存空間的過程 變量聲明是一種語句(指令)
包括 類型 和 標識符 int(類型) a(標識符);(分號表示這是一個語句)
不一樣類型的數據須要用相應類型的變量去存儲 這是由於不一樣類型數據的存儲方式(解釋方式)不一樣
聲明變量的過程也是開闢內存空間的過程 變量把數據以二進制存儲在內存中
而一串二進制數1101101010001存儲在int型變量中和存儲在double型變量中表明的意義不一樣
也就是說int和double解釋數據的方式不一樣
這也就是格式說明符的做用了
printf中要求咱們用%d輸出整數變量 用%f輸出浮點數變量 其實是讓咱們決定以哪一種方式解釋那串二進制數
表達式
表達式是有值的式子 好比 3 就是一個表達式 3 + 5也是一個表達式 它的值爲8
表達式中常常含有變量 而這些變量不必定是一個類型的 這就要說到類型轉換
int a = 3; double b = 5.4;
辣麼(a + b) / 2.5 在運算過程當中就會先把a轉化爲double型的3.0再參與以後的運算
全部的類型轉化 都是表示範圍低的數向表示範圍高的數轉化 只要式子中含有表示範圍更高的數據類型
因爲全部浮點數的範圍高於整數 所以整數總會被轉化爲浮點數 而float又會被轉化爲double
須要注意含有賦值符號的式子也是有值的 好比 a = 5 + 26; 這是一個賦值語句
賦值語句的組成形式是 a(標識符) =(賦值符號) 5 + 26(表達式);(分號表示語句)
也能夠這樣解釋它 a = 5 + 26(賦值表達式);(分號表示語句) 賦值表達式的值就是它的左值 其實沒差
表示比較的式子也是表達式 好比a > 五、 b == 8 等 若是它是對的 值就是1 錯的就是0
另外C把任何非0數都看做真 所以while(-26){ }是一個無限循環
3.基本輸入輸出和語句
這裏只要瞭解兩個函數printf和scanf就好
語句就是C程序切實執行的指令 它的標誌是分號結尾
語句分爲不少種 好比賦值語句 調用語句 返回語句 if語句 while語句等
4.圖靈完備
這裏講的是全部編程語言都有的部分
程序的執行順序分爲 順序結構 循環結構(while語句for語句實現) 分支結構(if else語句和switch語句實現)
5.函數
函數分3步
函數聲明(經過聲明語句完成 由於是語句因此要加;)
函數調用(經過調用語句完成 由於是語句因此要加;)
函數定義(這不是一個語句 它是一個定義了函數內容 也就是函數如何工做的代碼塊)
代碼塊是含有一條或者多條語句的一個總體 好比跟在while和for還有if以後的大多都是代碼塊 以{}花括號爲標誌
6.地址 指針 數組 字符串
瞭解地址和指針是理解數組和字符串的基礎
內容較多 不便詳述T_T
7.結構體
結構體是內部能夠含有各類類型變量的特殊複合結構
分爲 結構體模板 結構體變量的聲明(建立) 結構體變量的使用(經過"成員"去實用) 3部分
結構體是理解C++和C的區別的基礎 C++最重要的概念是類class 它和結構體特別相似
而java又將C++中的struct祛除了 java中的類兼容告終構體
8.其餘
C語言中的其餘部分還有不少 可是對向上繼續學習高級語言幫助不大 下面列舉出更偏向底層的內容
預處理指令 即#include #define等指令
須要記住的是 預處理指令不是語句 預處理髮生在編譯以前 它處理的內容是純文本
好比#include <stdio.h> 就是把頭文件<stdio.h>中的內容徹底複製粘貼到當前文件的相應位置
而#define MAXN 100010 則是把你定義的標記MAXN所有替換成100010 處理的都是字符罷了
位操做
它容許你在bit單位上操做數據 涉及的操做符有 << >> ^ | ~
java