首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C程序設計語言精華筆記(一):數組、外部變量、數據類型與轉換規則

     編輯:關於C語言

數組

  • 定義規則:局部數組不指定長度且無初始化 → 編譯錯誤;全局數組可不指定長度(隱式初始化為 0)。
  • 初始化:可僅指定內容 int a[] = {1,2,3},長度自動推導;指定長度時,未初始化元素自動為 0(int a[10] = {0} 全置零)。
  • 多維數組:C 僅允許省略第一維 int a[][3],且所有行長度固定(異於 Java 的不規則數組)。
  • 字符串:以 \0 結尾的字符數組,sizeof("abc") == 4。
  • 越界:C 不檢查下標越界,訪問越界屬未定義行為。
  • 參數傳遞:數組退化為指針,形參可寫 void f(int a[]) 或 void f(int *a),多維數組必須給出除第一維外的所有維度。
  • 地址本質:數組名即首元素地址,a == &a[0]。

extern 與多文件共享

外部變量在某文件定義(分配存儲),其他文件用 extern 聲明(不分配存儲)即可訪問。定義分配空間,聲明僅說明屬性。

變量命名規則

同 Java:字母/下滑線開頭,後接字母/數字/下滑線,區分大小寫。ANSI 保證前 31 字符有效。

基本數據類型

signed/unsigned 可修飾整型。limits.h/float.h 定義極值常量。標準 C 無 bool,以非 0 為真、0 為假。

整型常量後綴與進制

  • 十進制:無後綴 → int/long/unsigned long(取最小能容納者)。
  • 八進制/十六進制:無後綴 → int/unsigned int/long/unsigned long。
  • U/u → 無符號;L/l → 長整型;UL → 無符號長整型。
  • 字符常量類型為 int;浮點常量默認 double,F/f → float,L/l → long double。

算術類型提升與轉換規則( usual arithmetic conversions )

  1. 有 long double → 另一操作數轉 long double
  2. 有 double → 轉 double
  3. 有 float → 轉 float
  4. 有 unsigned long → 轉 unsigned long
  5. 一邊 long,另一邊 unsigned int:若 long 能表示所有 unsigned int 值 → 轉 long,否則雙方轉 unsigned long
  6. 有 long → 轉 long
  7. 有 unsigned int → 轉 unsigned int
  8. 否則 → 雙方轉 int

注意:float 不會自動提升為 double(除非另一操作數為 double)。示例:16 位機上 -1L > 1UL 為真,因 -1L 提升為巨大的無符號長整數。

void 類型

表示「無值」,不能作為左值,不能轉換為非 void 類型。可用 (void)expr 顯式丟棄表達式值。

轉義字符總表

類型關鍵字最小位寬備註
字符char8有符號性由實現定義
整數int16通常為機器字長
短整數short (int)16
長整數long (int)32
單精度float-
雙精度double-
長雙精度long double-
轉義含義
\a響鈴
\b退格
\f換頁
\n換行
\r回車
\t水平製表
\v垂直製表
\\反斜槓
\?問號
\'單引號
\"雙引號
\ooo八進制(1-3位,首位≤3)
\xhh十六進制(1-2位)

\0 即空字符(NUL),數值為 0,常用於字符串結束標記。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved