1. 程式人生 > >黑馬程式設計師-C語言基礎學習(一)

黑馬程式設計師-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>、期待與您交流! ----------------------