首頁 > 後端開發 > C++ > C 中的 `char a[] = 'string';` 和 `char *p = 'string';` 有什麼不同?

C 中的 `char a[] = 'string';` 和 `char *p = 'string';` 有什麼不同?

DDD
發布: 2024-12-17 19:56:11
原創
643 人瀏覽過

What's the Difference Between `char a[] =

"char a[] = "string";" 之間的區別和"char *p = "string";"

在程式設計中,變數可以是指針,也可以是數組。宣告變數時,指標和陣列的語法不同。理解兩者之間的差異對於正確操作資料至關重要。

char a[] = "string";

這行程式碼建立了一個大字元陣列足以儲存字串「string」及其空終止符。數組“a”使用字串“string”的元素進行初始化。稍後可以修改數組,並且其大小在編譯時已知,允許使用“sizeof”運算符來確定其長度。

char *p = "string";

這行程式碼建立了一個名為「p」的指針,它指向字串「string」的位址。指標「p」無法修改,但它指向的字串可以修改,從而導致未定義的行為。

比較:

  • 儲存: 陣列佔用連續的記憶體空間,而指標儲存的是記憶體的位址位置。
  • 修改:陣列允許對其元素進行修改,而指向字串的指標不應修改,因為它們通常駐留在唯讀記憶體中。
  • Size: 陣列具有固定大小,在編譯時確定,而指標指向的字串的大小必須使用以下函數確定“strlen()”,因為“sizeof”傳回指標本身的大小。
  • 用法:對於需要修改的資料使用數組,對於常數且應該修改的資料使用指標

注意:問題中的範例包含拼字錯誤,如“?”在此上下文中不是有效的運算符。假設預期的問題是關於數組和指標之間的區別。

以上是C 中的 `char a[] = 'string';` 和 `char *p = 'string';` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板