黑馬程式設計師-C語言基礎學習(一)
C語言學習筆記一
---既然決定14年要好好的努力一次,那麼就不要再輕言放棄,不再在隨波逐流。只有努力過、拼搏過,才會知道自己行還是不行!為自己加油!---
---總結的知識點可能有不正確的地方,如果有發現請留言給我,我一定及時更正,不讓錯誤的知識去誤導大家,有好的意見也可大聲提出來,小弟一定願意採納---
1、C語言的檔案結尾為.c,其中C語言程式是由函式構成的。c語言的入口函式為main函式
2、對於簡單的C語言程式執行可以利用終端(命令提示符)進行程式編譯,連結,執行C語言可是使用的工具有:gcc編譯器 clang編譯器
執行時相應的shell指令為
1).cc -c 檔名.c 編譯檔案 cc 檔案檔名.o 連結函式庫 ./a.out 執行生成程式
(其中生成名稱為a.out 是unix 幫著生成的名稱,這個名稱是可以進行修改的。
可以在連結函式庫時指定生成程式的名稱 如 cc 檔名稱.o -o 指定名稱b 在執行時直接 ./指定名稱b回車就可以執行 不需要加.out)
2).編譯的操作會把C語言程式碼翻譯成 0 和 1二進位制生成.o的檔案
注意:如果用shell命令執行帶有空格的檔案時,要把空格轉為 \ 加空格的形式 如 cc -c 01\ 第一個程式.c
3、C語言中的關鍵字全部為小寫
4、識別符號 命名規則:只能由26個英文字母大小寫 10個阿拉伯數字 下劃線組成 (嚴格區分大小寫 不能以數字開頭)
5、註釋
單行註釋 // 單行可以巢狀單行註釋 多行註釋
多行註釋 /* */ 可以巢狀單行註釋 不可巢狀多行註釋
6、bit 位元位 Byte 位元組 1 Byte = 8bit 01010101 = 1位元組 1KB = 1024B
7、整形常量 4個位元組 包括所有的整數
浮點常量 分為double float 兩種 double為雙精度 float為單精度,float要比double精度低,float以f結尾的。切不能有"10f"的格式出現,只能小數允許加f 如2.3f。
字元常量 1個位元組 char 單引號括起來 且只能括一個字元,而且不能為中文字元。 如'a' '0'字串常量 將一個或多個字元用雙引號括起來。 "123" "12"
8、變數的輸出
printf 只能輸出字串
%d %i 是一個格式符(佔位符),只能輸出整數 int %2i 其中的2代表佔用2個位置大小,可以方便進行輸出時樣式的顯示
如 _7 其中的_把7補成兩位顯示,實際中是空格
17
%f 用來輸出小數,且預設是6位小數 %.2f 控制為2位小數 double float
%c 用來輸出char型別 char
9、不同編譯器下資料型別佔用的字元數
型別 | 16為編譯器 | 32為編譯器 | 64為編譯器 |
char | 1 | 1 | 1 |
int | 2 | 4 | 4 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
10、變數的作用域
從定義變數的那行程式碼開始,一直到所在的程式碼塊{}結束
程式碼塊作用及時回收不再使用的變數提升效能
{
int a = 200;
printf("%d",a); //200
printf("%i",a); //200
}
{ int a = 100; { int a = 50; printf("%d",a); //50 去找自身程式碼塊中的變數 } printf("%d",a) //100 找所在程式碼塊中的變數 }
{
int a = 100;
{
int a = 50
{
a = 0;
//在這個程式碼塊中沒有進行變數型別的宣告 所以它會向外層去尋找型別 當發現int a 時便會把a賦值為0 //所以下面的輸出結果為 0
}
printf("%d",a); //0 去找自身程式碼塊中的變數
}
printf("%d",a) //100 找所在程式碼塊中的變數
}
11、記憶體定址
記憶體定址有大到小 int a int b a的記憶體地址會大於b的地址 由於a在b之前定義
變數越先定義,記憶體地址越大
12、取地址符
“&” 是地址運算子,取得變數的地址 &a 會給出a的記憶體地址
輸出地址用 %p 一個變數一定要先進行初始化
13、scanf函式
scanf函式只接收變數的地址,所以在使用者輸入的變數前要用地址運算子&
scanf函式是一個阻塞式的函式,等待使用者輸入
形式 scanf("%i", &a); 當一次性輸入多個數值時,需要用某一個符號隔開,空格也可以,當用戶輸入時也必須用相應的符號分隔
如果scanf 引數用空格隔開,實際輸入可以用空格、tab、回車作為分隔符
其中scanf中不能使用換行符 \n 如scanf("%d\n",&a); //錯誤語法
C語言學習第一天,所有知識點都是在觀看視訊時隨手記錄下來的,可能有記錄不正錯或是不準的地方,如果發現請及時指出以便我及時修改,不要誤導了自己,更誤導了大家。後續還會發表些關於C語言基礎的筆記,有正在學或是想學習C的朋友,咱們可以私聊下,一起學習交流。畢竟一個人的理解和領悟能力有限。讓我們可以互相幫助下。寫的不好,有意見的請大聲的提出來,好的意見,小弟一定採納。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity開發</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流!
----------------------