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

《C 專家編程》閱讀筆記(四):數組與指針並不相同

     編輯:關於C語言

第四章核心:數組 ≠ 指針

  • 聲明 vs 定義:聲明描述外部對象,定義分配內存。
  • x = y 中 x 代表地址(左值),y 代表內容(右值)。
  • 數組名是左值但不可修改(不可賦值)。
  • 字符串常量初始化差異:
    • char *p = "012345"; → p 指向只讀區,p[1] 不可改。
    • char a[] = "01234"; → a 在棧上分配,可修改 a[1]。

驗證代碼

int main() {
    char *p = "012345";
    char a[19] = "01234";
    printf("%c", p[1]);  // '1'
    // p[1] = 'x';      // 段錯誤
    printf("%c", a[1]);  // '1'
    a[1] = 'a';          // 合法
    printf("%c", a[1]);  // 'a'
    return 0;
}

摘自 CodeBlog

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