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

淺析 C 語言中數組與指針的互操作:本質、定義、初始化與字符串特例

     編輯:C 語言基礎

數組本質

數組是同類型變量的有限集合,通過下標訪問。C 中數組由連續內存區域構成,最低地址對應首元素(下標 0),最高地址對應第 N-1 個元素。

定義與初始化

type_specifier array_name[size] = {value_list};
// 一維示例
char hello[12] = {'H','e','l','l','o',',',' ','w','o','r','l','d','\0'};

字符數組以 '\0' 結尾(C 標準),操作時以此為結束標誌。若定義字符串常量則自動添加 '\0':

char *hello = "Hello, world";
char hello[] = "Hello, world";   // 編譯器自動計算長度

初始化時可省略尺寸:char hello[] = {'H','e',...,'\0'};,編譯器自動分配合適空間。

數組名與指針的關鍵差異

  • 數組名是常量指針,不可作左值賦值,故數組間無法直接賦值復制。
  • 結構體變量名不是地址,需用 & 取首成員地址。
  • char *p = "str" 與 char p[] = "str":前者指向只讀常量區,後者在棧上分配可修改副本。

指針算術與下標等價性

a[i] 等價於 *(a+i);指針加減按元素大小縮放。理解此等價性是掌握數組指針互操作的核心。

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