指標與陣列 字元指標,字串和字元陣列的區別

2021-07-29 19:53:32 字數 846 閱讀 2868

指標和陣列是不相等的,把乙個陣列名作為乙個引數傳遞給函式時陣列名就是指向第乙個元素的指標,

在大多數表示式中

陣列名的值是指向第乙個元素的指標(有兩個例外,乙個是sizeof返回的是整個陣列

的位元組數,乙個是&操作符返回

的是乙個指向陣列的指標),但不代表

兩者等價。

int  a[3];

int  *b;

宣告乙個陣列時,編譯器會根據宣告申請元素的個數保留記憶體空間,然後再建立陣列名,a的值就是

乙個常量,指向

這段空間的起始位置。

宣告乙個指標時,編譯器只會為指標本身保留記憶體空間,不會

為任何整形值保留空間。

所以用*a是和法的,而*b是非法的。  a++是非法的,因為a是常量,b++合法。

字元指標與字串和字串的區別又是什麼?

字元指標是乙個指向字元的指標,字元陣列是元素為字元的陣列,字串是乙個以'\0'結尾的字元陣列

char* a = "abcd";雖然你可以通過a訪問字串,但你對a進行字串操作就會出錯如strcpy(a,「bcd」)

因為編譯器並沒有為

a預留字串記憶體。(指標與陣列的區別)

字元陣列的大小是固定的

char a = ;  sizeof(a)為5不論有沒有\0,

char b ="abcd", sizeof(b)為5,b = ; 用字元陣列存放字串編譯器會為字串預留乙個

位置存放'\0'表示字串結尾,

在32為平台下指標的大小總為4個位元組。

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...

字串指標和字元陣列

很多剛從c 轉c 的人都不明白,在c 中這樣的 char pchar hello!定義字元指標pchar 指向乙個字元陣列首 元素即h pchar h 問題所在行 到了c 中怎麼就不行了?你翻遍參考書,都會說,pchar 指向的是常量,怎麼能允許改變呢?你又問了,怎麼我在c 中執行的好好的?沒人回答...

字元指標, 字元陣列, 字串

預備知識 c程式在記憶體中的空間占用分配 1 區 存放程式 2 資料區 a.靜態資料區 在編譯器進行編譯的時候就為該變數分配的記憶體,即全域性變數和靜態變數 用static宣告的變數 存放在這個區的資料程式全部執行結束後系統自動釋放,宣告週期貫穿於整個程式執行過程。全域性變數和靜態變數的儲存是放在一...