1. 程式人生 > >總結一些初學者不明白的問題

總結一些初學者不明白的問題

總結一些初學者不明白的問題:
1.常量:①整型常量②實型常量③字元常量④字串常量⑤ 符號常量
2.變數
3.常變數
4.識別符號
5.補碼
注意一:不要把符號常量誤認為變數,區分符號常量和變數,符號常量不佔記憶體,只是一個臨時符號,代表一個值,在預編譯後這個符號就不存在了,故不能對符號常量賦新值。
例如:
在這裡插入圖片描述
在這裡插入圖片描述
在#define PI 3.14後程序中所有PI被帶入3.14的值,而且這個PI也不可以再被當成是變數賦予其他的數值了,而且符號常量一般是使用生活常量,比如圓周率啥的。符號常量有如下優點:①含義清楚 ②能做到“一改全改”。變數與符號常量有如下不同點:①變數是先定義後使用(在定義時要做到指定該變數的名字和型別)②在程式執行期間變數的值是可以改變的。
注意二:區分變數名和變數值這兩個不同的概念。變數名實際上是以一個名字代表的一個儲存地址。從變數中取值,實際上是通過變數名找到相應的記憶體地址,從該儲存單元中讀取資料。
注意三:符號常量和常變數的區別。例如:符號常量Pi和常變數pi都代表3.1415926,在程式中都能使用,但是兩者的性質不同:定義符號常量用#define指令,它是預編譯指令,他只是用符號常量代表一個字串,在預編譯時僅進行字元替換,在預編譯後,符號常量就不存在了(全置換成3.1415926了),對符號常量的名字是不分配儲存單位的。而常變數要佔用儲存單位,有變數值,只是該值不改變而已,從使用的角度看,常變數具有符號常量的優點,而且使用更方便。有了常變數以後,可以不必多用符號常量。
注意四:識別符號的規定:①只能由字母,數字和下畫線3種字元組成。②第一個字元必須為字母或下畫線。③編譯系統認為大寫字母和小寫字母是兩個不同的字元 ,例如:sum和Sum,class和Class都是不同的變數名。④一般而言,變數名用小寫字母表示,與人們日常習慣一直,以提高可讀性。
注意五:在將一個變數定義為無符號整型後,不應向它賦予一個負值,否則會得到錯誤的結果。
在這裡插入圖片描述


在這裡插入圖片描述
結果會這樣是因為:系統對-1先轉換成補碼形式,就是全部二進位都是1,然後把它存入變數price中。由於,price是無符號短整型變數,其左邊第一位不代表符號,按“%d”格式輸出,就是65535。(在程式中經常會對各種型別的資料進行操作,使用c語言程式設計時應當對資料在計算機內部的儲存情況有一些基本的瞭解。否則對執行時出現的問題會感到莫名其妙,無從分析。)