C語言第一篇
1、簡述
很早之前就學習過C語言,但是後來轉行寫了java,所以對裡面的知識點有點陌生了。但是最近一陣子重新有了學習c和c++的慾望,所以每天抽出來一個小時的時間來學習一下C語言和c++。權當是個人愛好吧。
剛剛好也可以複習一下一些常用的小東西。比如說:資料型別、變數、函式、陣列、流程控制等等,這些東西在最基礎的地方開始學習起來。
我認為學習寫程式最大的特點就是:先能夠懂是什麼意思,然後去思考為什麼會有這種效果,追根溯源。
也就是說,先看懂,再實操,再總結思考,再敲。經過:出錯----->除錯---->製造錯誤----->總結---->再總結
最終提煉出精華所在,然後用程式去解決實際問題。
2、軟體安裝
學習C語言的時候沒有必要去安裝VS,一方面太大了,另外一方面安裝起來麻煩。所以自己下載了個Dev-c++來使用。
非常簡單,免費好用,支援中文。
3、資料型別
在現實生活中,我們用整數、小數就足夠我們來表示資料了,通過操作符也就是加減乘除這些操作也足夠我們的計算了。
但是在計算機中又做了比較精確的劃分。
整數型別:byte、short、int、long
小數型別:double、float
字元:'a'
布林型別:boolean
計算機既然是用來處理資料的,那麼就應該在計算機中先儲存資料。但是對於計算機而言,只能夠識別二進位制,也就是0、1這兩種狀態的資料。
那麼我們人類所能夠識別的資料最終都將以二進位制的型別儲存到計算機中去;那麼對於資料來說,計算機如何識別我們的資料到底是哪種型別的呢?通過資料型別來標識。
但是在C語言中的資料型別:
對於整數的表示: short int 短整型,佔用2個位元組;int 正常整數,四個位元組;long int 長整型,八個位元組;
對於小數的表示:float:表示小數,佔用4個位元組;double:表示小數,佔用8個位元組;double佔用位元組比float多,所以儲存的資料更多;
字元:'x',用單引號括起來的,裡面寫上一個字元即可,佔用一個位元組;
複合型別:結構體、列舉。結構體就是基本型別組成的混合體;列舉是可以一一列舉出來的資料;
# include <stdio.h> int main(void) { int i; i = 10; printf("value is :%d\n",i); return 0; }
這裡就是一個最簡單的程式而已。
程式在執行的時候,首先要被載入到記憶體中去,int i這段程式碼表示的要向作業系統申請一塊空間來儲存這個變數i,申請多大的空間?根據int這個資料型別來確定的,佔用四個位元組,對應的值是什麼?可以看到後面又給其進行了賦值,賦值是10,所以接著將10轉換成二進位制資料放入到對應的記憶體中去;
在程式執行期間,這塊空間就屬於當前程式,其他的程式無法霸佔這塊空間。就這樣變數i和記憶體中的一塊地址形成了對映操作,操作變數i,就等於是操作這塊記憶體地址。這個概念非常重要
4、變數以及變數為什麼要初始化
變數就是在程式執行過程中處於動態變化的。相對應的,在程式執行過程中一直不變的,那麼叫做常量。
int i = 10;
const int j = 10;
i = 20;
// j = 1; 賦值失敗,因為常量是不會變的
那麼為什麼說變數在宣告的時候,一定要進行初始化呢?變數在程式執行的時候,會向作業系統申請記憶體空間來存放資料,但是申請過的記憶體空間可能是上一個程式所使用過的,裡面已經有了01程式碼,那麼現在去申請的這塊空間被當前的變數i給佔用了,那麼這個裡面的值就被i給使用了,但是這個值並不是當前這段程式本身設定的值。也就是說,申請過來的記憶體空間中的資料都是垃圾值,是無法使用的。那麼我們必須得初始化我們自己的值進去。以防程式出現問題
千里之行,始於足下。不積跬步,無以至千里