Koenig 在他的《Accelerated C》一書中介紹了使用' ' 運算子連接字符串的概念文字和物件。雖然這看起來很簡單,但存在一些微妙的細微差別,可能會導致意想不到的結果。
考慮以下兩個例子:
<code class="cpp">const string hello = "Hello"; const string message = hello + ",world" + "!";</code>
<code class="cpp">const string exclam = "!"; const string message = "Hello" + ",world" + exclam;</code>
第一個範例成功連結了三個字串。但是,第二個範例失敗了。
要理解差異,我們必須考慮 ' ' 運算子的關聯性。 ' ' 運算子是從左到右關聯的,這意味著它從左到右進行計算。如果不考慮到這一點,這可能會導致意外的行為。
在第二個範例中,表達式可以用括號括起來:
<code class="cpp">const string message = ("Hello" + ",world") + exclam;</code>
如您所見,兩個字串文字「 Hello" 和",world," 首先連接起來。這會產生一個字串文字,無法與字串物件「exclam」進一步連接。
有多種方法可以解決此問題:
<code class="cpp">const string message = string("Hello") + ",world" + exclam;</code>
<code class="cpp">const string message = "Hello" + (",world" + exclam);</code>
「 」運算子旨在連接字串對象,而不是字串文字。字串文字是一個字元數組,當在表達式中使用時,它會轉換為指向其初始元素的指標。在 C 中不允許添加兩個指針,就像連接字串文字一樣。
雖然不能使用' ' 運算子連接字串文字,但您可以透過並排放置它們來組合它們:
<code class="cpp">"Hello" ",world"</code>
這相當於:
<code class="cpp">"Hello,world"</code>
這對於將長字串文字分解為多行很有用。
以上是如何使用 \' \' 運算子安全地連接字串文字和物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!