陣列與指標表示字串的區別

2021-10-24 13:54:35 字數 753 閱讀 3016

1.雙括號括起來的是字串字面量,也叫字串常量,如果字串字面量之間沒有間隔或用空白字元分隔會被視為串聯在一起的字串常量。雙引號括起來的內容被視為指向該字串儲存位置的指標。

2.字串常量屬於靜態儲存類別。

3.字串初始化需要足夠的空間,還需要乙個元素容納空字元。無下標時編譯器自動分配空間,但僅能在初始化時使用,若之後想擴充,則必須初始化時自己宣告。

4.用陣列(ar)表示字串時會把靜態儲存區中的字串拷貝乙個副本儲存於陣列中,此時ar被視為該陣列首元素的位址。

注意:ar是位址常量不能更改。

5.指標形式(pt*)會直接把字串字面量首元素的位址儲存在指標中,字串字面量被視為const資料,因此應把pt宣告為指向const資料的指標,不要用指標更改字串。

注意:pt是變數。如果打算修改字串就不使用指標。

6.因此指標pt!=ar,pt為原先字串字面量首元素位址相同。

注意,指標指向字串時也可以表示為pt

x=5,y=40

1.指標形式:const char *pt[x]=;

pt是乙個內含五個指標的陣列,占用40個位元組,

pt中指標指向的字串同樣不能修改;

2.陣列形式:ar[x] [y]={};

ar是乙個內含五個陣列的陣列(拷貝了乙個副本),占用200位元組;

ar中每個元素的大小必須相同且可容納最長字串,記憶體使用率低;

可修改;

3,一般用指標形式,若想更改,用陣列形式。

字串陣列與字串指標的區別

字元指標變數和字元陣列的區別 簡單說一下 字串陣列是用來存放字串的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方法為 char p 完整的解答 1 字元陣列...

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

用字元陣列和字元指標變數都可實現字串的儲存和運算。但是兩者是有區別的。在使用時應注意以下幾個問題 字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以 0 作為串的結束。字元陣列是由於若干個陣列元素組成的,它可用來存放整個字串。對字串指標方式...

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

指標和陣列是不相等的,把乙個陣列名作為乙個引數傳遞給函式時陣列名就是指向第乙個元素的指標,在大多數表示式中 陣列名的值是指向第乙個元素的指標 有兩個例外,乙個是sizeof返回的是整個陣列 的位元組數,乙個是 操作符返回 的是乙個指向陣列的指標 但不代表 兩者等價。int a 3 int b 宣告乙...