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

郝斌老師 C 語言學習筆記(一):從變數記憶體模型到程式設計核心觀念

     編輯:關於C語言

C 語言入門核心筆記:變數、記憶體、資料類型與學習方法論

整理自郝斌老師 C 語言課程第一講,涵蓋變數本質、記憶體運作、Hello World 執行流程、基本資料類型、進制表示、學習路徑與程式設計哲學。

1. 變數與記憶體核心觀念

  • 變數本質:記憶體中一段儲存空間,對應唯一位址
  • 未初始化變數:VC 編譯器填充 0xCC (85開頭大數) 作為「填充字」,提醒未初始化
  • 初始化必要性:避免使用殘留垃圾值導致邏輯錯誤
int i; 
printf("i = %d\n", i); // 輸出類似 -858993460 (0xCCCCCCCC)

2. 經典範例:一元二次方程求解

#include <stdio.h>
#include <math.h>
int main() {
    int a=1, b=5, c=6;
    double delta = b*b - 4*a*c, x1, x2;
    if (delta > 0) {
        x1 = (-b + sqrt(delta)) / (2*a);
        x2 = (-b - sqrt(delta)) / (2*a);
        printf("兩解: x1=%f, x2=%f\n", x1, x2);
    } else if (delta == 0) {
        x1 = x2 = -b / (2*a);
        printf("雙重解: %f\n", x1);
    } else printf("無實數解\n");
    return 0;
}

3. C 語言發展脈絡與定位

世代代表語言特點
第一代機器語言 (0/1)直接執行,難讀寫
第二代組合語言助記符,對應機器碼
第三代 (結構化)C, Fortran, Pascal, Basic面向過程,結構化控制流
面向對象C++, Java, C#封裝/繼承/多型,大型專案管理
  • C 語言優點:代碼量小、速度快、功能強 (作業系統、驅動、資料庫、嵌入式、遊戲)
  • 缺點:危險性高 (指標)、大型專案開發週期長、可移植性弱於 Java

4. 硬體與軟體協作模型

CPU ←→ 記憶體 (RAM) ←→ 硬碟
        ↑
    顯卡/主板/外設
  • 程式執行:原始碼 → 編譯連結 → .exe → CPU 取指執行
  • VC6 向作業系統申請記憶體空間執行程式
  • DOS 可直接控制硬體,Win2000+ 必須透過作業系統 API

5. 基本資料類型與儲存大小

  • 整數:int(4)、short(2)、long(4/8)
  • 浮點:float(4)、double(8) — IEEE 754 浮點表示
  • 字元:char(1) — ASCII/延伸編碼
  • 複合類型:結構體、列舉、聯集

6. 進制與常數表示

  • 二進位 (基礎)、八進位 (0 開頭)、十六進位 (0x 開頭)
  • 字元常數 'A'、字串常數 "Hello" (以 \0 結尾)
  • 補碼表示有號整數:正數原碼,負數補碼 (反碼+1)

7. 學習方法論與目標

  1. 四階段教學:理論兩節 + 上機兩節 (當堂完成、老師檢查)
  2. 核心目標:看懂程式、會除錯、強自學力、大問題拆解小問題
  3. 參考書:《C Primer Plus》(語法) → 《C和指針》 → 《C專家編程》/《C陷阱與缺陷》(進階)
  4. 23 講規劃:流程控制(4講)、函數(2)、陣列(1)、指標(4)、作用域/儲存類別(1)、擴展類型(1)、專題(6)

8. 程式設計箴言

「當你成為 C 高手,進入作業系統平台實際開發,懂除錯,就能掌握整個平台架構,計算機一切盡在掌握。」 — 《編程箴言》梁肇新

打好 C 語言基礎,是通往系統級開發、嵌入式、高效能計算的必經之路。

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