程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言的筆記,c語言筆記

c語言的筆記,c語言筆記

編輯:關於C語言

c語言的筆記,c語言筆記


下面把我這半年來記的一些C語言的筆記貼出來。

1  C語言中函數參數傳遞是按照“值傳遞”進行的,即單向傳遞。

2  函數原型:函數類型 函數名(參數類型,參數類型……),可以不必加參數名,因為操作系統不檢查參數名。

3  數組作為實參傳遞,型參若也是數組聲明,可以第一維不指定數組大小,此時這個數組已經退化為一個指針,因此數組長度需要在參數當中接收。局部引用型參數組名的時候,其實它已經不是數組而只是一個指針。

4  函數定義不可以嵌套

5  型參中的數組定義,可以不指定一維數組的大小,指定了也不起作用。C編譯器對型參數組大小不做檢查,只是將實參數組首地址傳遞給了型參。故,兩個數組名的指針一致。兩個數組共同占用一段內存單元。多為數組名作參數可以忽略一維數組的大小,但是不能忽略二維及高維的大小聲明,C編譯器不檢查第一維的大小。

6  動態存儲方式與靜態存儲方式:靜態存儲指程序運行期間分配固定的存儲空間的方式,而動態存儲是根據需要動態分配管理的方式。全局變量存儲在靜態存儲區,而靜態局部變量亦是如此。使用static聲明的全局變量表示其作用域只是本文件當中,而不可以被其它文件使用 “extern”聲明後 引用,同樣的static型函數。

7  只有局部變量和型參可以作為寄存器變量。別問為什麼,理由自己去想!

8  使用“extern”聲明外部變量,編譯時將外部變量分配在靜態存儲區。

9  使用“extern”聲明一個外部變量,可以是本文件中的,此時適用的情況就是“適用處位於聲明處之前”。或者是在其它文件中進行查找:extern int a; 或者 extern a; 查找先是在本文件當中進行的,然後是外部文件。

10 預處理命令,它們並非C語言的一部分。

11 a[i] 與 *(a+i)效率相同而內部處理是將 a[i]轉化為 *(a+i);

12 java當中構造方法不能被子類繼承,若子類需要調用父類帶參構造方法需要使用 super()方法。正常編譯器會自動調用父類的無參構造方法。顯示的通過super()父類成員。

13 java當中構造方法的第一條語句可以為this調用,即通過適用this加參數,調用其它的構造方法。

14 C語言的數據類型大體可以分為四種:基本類型(整型、字符型、實型、枚舉類型),構造類型(數組、結構體、共用體),指針類型,空類型。

15 在Turbo C中一個int型變量最大允許值32767,如果將其加1,則會溢出,變為-32768。

16 如果一個整常數後面加一個字母,u或U,則認為是unsigned int型。如12345u,在計算機中按照unsigned int 存儲。存儲單元中最高位不作為符號位,而用來存儲數據。如果數字為123L,表示long int。

17 float 4個字節,有效數字6-7位。 double 8個字節,有效數字位數15-16位。

18 實型數據的捨入誤差。%f為輸出一個實數的格式符。看下面的程序:

main()
{
    float a, b;
    a=123456.789e5;
    b=2+20;
    printf("%f", b);
}

實型變量只能保證7位有效數字,後面的數字是無意義的,並不准確。此時輸出a,b都為12345678848.000000 。類似的如果輸出1.0/3*3,那麼看到的輸出並不等於1

實型常量,C編譯系統作為雙精度處理。

19 如果i=3,printf(“%d”, -i++),則先取i的後置自增,返回結果3,之後取負,輸出雖然是-3,此時i為4.

20 變量“先定義後使用”原則的好處:確保程序變量名使用得正確,類型確定,在編譯時就能為其分配相應的存儲單元;有利於編譯時進行運算的合法性檢查。

21 如果 float a = 4.5; 那麼 (int)a/1.5 結果為2.66……而不是3,這說明了運算的順序先進行類型的轉化在進行除運算。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved