我是編程新手。我正在學習C作爲我的第一種編程語言。我發現了一些奇怪的理解。瞭解字符數組[]和字符串
我已經學會在C我們可以表示一個字符串作爲像這樣的字符(使用字符數組)的序列:
char status[10] = "Married";
我已經瞭解到,這種方法的問題是,我們不得不在編譯期間告訴status
陣列的大小。
但現在我已經學會了,我們可以用一個char
指針來表示一個string
像 -
char status[10] = "Married";
char *strPtr;
strPtr = status;
我不正確地理解它。我的問題是 -
我怎樣才能在焦炭指數4(即我在已婚)使用
strPtr
?在
status
有在由char
陣列表示的string
的端部的空字符(\0
) -M
-a
-r
-r
-i
-e
-d
-\0
。所以通過使用空字符(\0
)我們可以理解字符串的結尾。當我們使用strPtr
時,我們如何理解string
的結束?
1)'*(strPtr + 4)'會給你char'i'。 2)'strPtr'也指向'status',所以它末尾會有(相同的)空字符('\ 0')。 – 2015-03-31 10:48:32
由於數組衰減到指向其第一個元素的指針,因此數組和指針通常可以互換使用,因此在數組上使用解引用操作符將會起作用,就像在指針上使用數組索引操作符一樣。另外,'*(arrayOrPointer + X)'相當於'arrayOrPointer [X]'。 – 2015-03-31 10:48:37
檢查[sizeof(&array)'返回什麼?](http://stackoverflow.com/questions/15177420/what-does-sizeofarray-return/15177499#15177499) – 2015-03-31 16:09:04