日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++中兩種字符串定義方式和區別介紹_C 語言

作者:吃塊小餅干吧 ? 更新時間: 2022-03-27 編程語言

前言

在學習字符串這方面的內容時,發現字符串定義的兩種方式雖然內容相同但還是有細微的區別

概念

字符串就是一串用雙引號連接起來的字符串字面值,簡稱為字符串

定義方式

上代碼

char acter1[]="Hello world";//第一種定義方式
 
char acter2[]={'H','e','l','l','o','w','o','r','l','d'}; 第二種定義方式

此時并不能看出這兩種定義方式的區別,拿到VS調試器看看

?

很明顯的看出,第一種定義方式末尾添加了一個字符'\0',而'\0'就是字符串的轉義字符

而第二種定義方式就沒有自動添加結束標志

再看一下彼此的輸出結果

?第一種定義方式輸出了我們想要的結果,而第二種定義方式則輸出了亂碼,我們不想要的字符

接下來我們來討論這個現象出現的原因

計算機的存儲方式

在計算機中,內存是連續存儲的,我們創建一個數組出來,就是在內存中隨機開辟出一塊內存空間來

而這塊空間的前后有什么數據,我們并不是很清楚

?如上圖,在第二種定義方式的影響下,我們沒有設定字符串結束標志,那么它就會在后面隨機生成,至于是在第幾位我們并不清楚,所以會出現亂碼

假如我們自己添加上'\0',結果就會出現我們想要的樣子,如下圖

?而我們也只能控制后面的字符,而無法控制前面的字符

總結

推薦使用第一種定義方式

原文鏈接:https://blog.csdn.net/qq_57645160/article/details/122437198

欄目分類
最近更新