一、變量名與變量值 函數
變量名其實是一個符號地址。程序編譯時,系統給變量開闢該變量對應類型所需的內存空間(用於存儲變量值),而後由系統創建一個從變量名到該內存空間的首地址的映射,這樣就能夠經過變量名訪問到變量值了。
變量名由數字、字母和下劃線組成。大小寫敏感,不能以數字開頭。變量名的長度(字符個數)沒有硬性的規定,只是不一樣的C編譯器可能會有不一樣要求。
C語言中,使用變量以前必須定義該變量,不然編譯出錯。定義變量時須寫明變量所屬類型。程序編譯時,會根據變量的類型來決定爲該變量開闢多大的內存空間,同時還能夠檢查運算的合法性。好比實型數據之間不能作求餘數的操做。
二、整型數據 生命週期
C語言中,整型數據的類別有三種:short,int,long;屬性有兩種:signed,unsigned。共有六種組合。
整型數據類型的長度:C標準沒有硬性規定每種類型的長度,只是規定:long的長度要不小於int;short的長度不大於int。通常的C編譯器都會以一個機器字的存放一個int型數據。
三、變量初始化 內存
變量的初始化不是在編譯期間完成內存空間的分配(只有靜態變量和外部變量是在編譯期間初始化),而是在程序運行時執行函數時才賦值。 作用域
四、格式輸入&輸出 字符串
%md,%mc,%ms(m爲正整數):m的大小決定了輸出內容的寬度,當輸出內容的長度小於m時,輸出內容右對齊,左補空格;當輸出內容的長度大於m時,輸出內容不受m的限制,原樣輸出。
%-md,%-mc,%-ms:用法同上,只是輸出內容左對齊,右補空格。
%m.nf,%m.ns :m控制輸出內容的總寬度,對於實型數據來講小數點也算一位,當輸出內容的實際寬度大於m時突破m的限制;%m.nf中的n控制小數位的位數,%m.ns中的n表示截取字符串的左n位,若n小於m則左補空格。 編譯器
%0md:輸出m位的整型數值,若是被輸出的數據位數小於m時,前補0 編譯
五、C語言的變量的存儲類型 變量
C語言的變量存儲類型有不少種分法,根據生命週期來分可分爲:動態變量和靜態變量;根據使用域來分可分爲:局部變量和全局變量(又叫內部變量和外部變量) 數據類型
a)、動態變量和靜態變量。 程序
動態變量------變量所佔空間是動態分配的,即只有到使用到某個變量時,才動態的給該變量分配內存空間,用完後還要及時收回。好比函數的形參及函數內的局部變量。其代碼表現形式爲關鍵字"auto" +變量類型名+變量名,通常狀況下關鍵字"auto"省略不寫。也就是說咱們平時用得最多的就是動態變量。動態變量存放於內存的棧區和堆區。
靜態變量------變量所佔空間是靜態的,即程序自始至終一直存在。代碼表現形式爲關鍵字"static"+變量類型名+變量名,靜態變量的初始化是在編譯期完成的,且只初始化一次,程序執行時再也不對靜態變量進行賦初值。
b)、局部變量和全局變量(又叫內部變量和外部變量)
局部變量------定義在函數體內部的變量,因此又叫內部變量。其做用域僅限於聲明該局部變量的函數體內部。程序運行時,在動態存儲區爲局部變量分配空間(靜態局部變量除外)。
通常狀況下使用的局部變量都是動態變量,但並不表示沒有靜態的局部變量。靜態局部變量由於是靜態的因此會被存在靜態存儲區,這就意味着即便函數調用結束,它的值還仍然存在。利用這一特性咱們能夠用靜態局部變量來保留函數上一次的執行結果
全局變量------定義在函數體外部的變量,因此又叫外部變量。其做用域爲該全局變量的聲明處一直到程序結束。與局部變量不一樣的是,全局變量存在靜態存儲區,在編譯期就被分配空間。