女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

字符數組和字符串有沒有區別?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-11-30 16:39 ? 次閱讀

字符數組和字符串有沒有區別?

最近有同學做筆試題的時候,遇到了這么一個問答題。

絕大多數人會把字符數組和字符串當作一個概念,因為在C語言中沒有string這種類型,所以我們一般用字符數組來表示字符串。

要說他們的區別,我覺得主要就是 ? 的問題。

定義字符數組,我們一般這樣寫:

chararray[]={'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};;

但是這種寫法存在很嚴重的問題,如果用 strlen 計算數組的長度或者用 printf 的 %s 格式來輸出,那程序很容易奔潰。

因為數組里面只有 helloworld, 占10個字節,它達不到字符串的標準。

C語言中的字符串必須以 ? 結尾,不管是 printf 還是 strlen 這些字符串處理函數,都是把 ? 作為字符串的結束標志。

想要計算這個數組的長度,只能用 sizeof 關鍵字,得到數組實際占用內存的大小。

這個代碼要想修改,有兩種方法。

第一種把數組的容量改的大一些,程序就能正常運行。

char array[20] = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};;

這種寫法,helloworld 的后面全是 ?。

此時的字符數組就是一個完整的字符串。

第二種在最后一個字符的后面手動加上一個 ?,也能達到相同的效果。

chararray[]={'h','e','l','l','o','w','o','r','l','d','?'};

當然這種寫法太麻煩,我們一般直接寫成這樣。

char array[] = "helloworld";

這個地方的 helloworld 就是一個標準的字符串,存儲的時候編譯器會把最后的 ? 一同加入到數組中。

這種寫法推薦大家在寫代碼的時候使用。

有時候我們還會聽到一個概念,字符串數組,比如寫成這樣的:

chararray[]={"helloworld","123456"};

這個就比剛才的代碼麻煩的多。

問大家一個問題,此時的數組array在內存中占幾個字節?

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3109

    瀏覽量

    74992
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140393
  • 字符串
    +關注

    關注

    1

    文章

    589

    瀏覽量

    21112
  • 數組
    +關注

    關注

    1

    文章

    419

    瀏覽量

    26373

原文標題:字符數組和字符串是不是一回事

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    數組、向量和字符串 實驗

    實驗 5 數組、向量和字符串一、實驗目的 1. 掌握Java中的數組定義、引用2. 掌握向量的基本概念和應用技術3. 掌握使用字符串String類
    發表于 09-23 19:00 ?1600次閱讀

    C語言字符串轉數字實現方法

    在C/C++語言中沒有專門的字符串變量,通常用字符數組來存放字符串字符串是以“\0”作為結束符
    發表于 11-14 17:50 ?1.4w次閱讀

    C語言的字符串處理函數

    指針是神奇的,指向整型的指針int *p1,可以操作整型數組int a[];指向字符型的指針char *p2,可以操作字符數組字符串)ch
    發表于 07-24 17:37 ?4次下載
    C語言的<b class='flag-5'>字符串</b>處理函數

    電子表格字符串數組轉換和改良LabVIEW資料免費下載

    由于labiview自帶的電子表格字符串數組轉換子VI存在輸出的數組會被字符串的單個回車影響,這會導致單元格中帶有回車的數組轉到
    發表于 07-03 08:00 ?12次下載
    電子表格<b class='flag-5'>字符串</b>至<b class='flag-5'>數組</b>轉換和改良LabVIEW資料免費下載

    用指針實現字符串拷貝的程序和字符型指針變量與字符數組區別說明

    字符串是存放在字符數組中的,對字符數組中的字符逐個處理時,前面介紹的指針與
    發表于 11-05 16:15 ?2次下載
    用指針實現<b class='flag-5'>字符串</b>拷貝的程序和<b class='flag-5'>字符</b>型指針變量與<b class='flag-5'>字符</b><b class='flag-5'>數組</b>的<b class='flag-5'>區別</b>說明

    什么是復制字符串?Python如何復制字符串

    。 在上一篇文章《你真的知道Python的字符串怎么用嗎?》里,我突發奇想,將字符串跟列表做了比較,然后發現字符串竟然沒有復制的方法。當時沒有
    發表于 11-25 10:32 ?3170次閱讀

    字符串函數重寫練習

    字符串函數重寫練習:字符串比較、字符串拼接、字符串查找、字符串拷貝、內存比較、內存拷貝、內存初始化、內存比較、二維
    的頭像 發表于 05-05 15:02 ?2185次閱讀

    C語言字符數組字符串有什么區別

    用來存放字符數組稱為字符數組字符數組的各個元素依次存放
    的頭像 發表于 02-17 14:27 ?4330次閱讀

    簡述數組字符串組的使用

    在Python中我們通常也會用到數組字符串組并且能快速方便的構建出來,那么在java構建數組是否是類似的呢?
    的頭像 發表于 02-23 11:09 ?678次閱讀
    簡述<b class='flag-5'>數組</b>及<b class='flag-5'>字符串</b>組的使用

    C語言字符串的引用方式

    在C語言程序中,字符串是存放在字符數組中的。 2. 用字符數組存放一個字符串,可以通過
    的頭像 發表于 03-10 14:57 ?2239次閱讀

    c語言字符串定義

    C語言是一種強大而廣泛使用的編程語言,字符串是其中一個非常重要的概念。在C語言中,字符串是由一系列字符組成的數組,它可以表示文本、數字等各種類型的數據。在本文中,我們將詳盡、詳實、細致
    的頭像 發表于 11-24 10:02 ?2511次閱讀

    C語言字符串編譯函數介紹

    在C語言中,字符串實際上是使用null字符O'終止的一維字符數組。因此,一個以null結尾的字符串,包含了組成
    的頭像 發表于 03-07 16:18 ?663次閱讀
    C語言<b class='flag-5'>字符串</b>編譯函數介紹

    labview字符串如何轉換為16進制字符串

    Instrument)以及利用第三方工具。 1. 使用內置函數 LabVIEW提供了一些內置函數,可以直接將字符串轉換為16進制字符串。這些函數通常位于“編程”->“字符串”->“轉換”菜單下。 1.1
    的頭像 發表于 09-04 15:54 ?4682次閱讀

    labview字符串數組轉化為數值數組

    在LabVIEW中,將字符串數組轉換為數值數組是一項常見的任務,尤其是在處理數據采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數據類型 在開始之前,了解LabVIEW中的數據類型是非
    的頭像 發表于 09-04 17:47 ?4886次閱讀

    字符串字符數組區別

    在編程語言中,字符串字符數組是兩種基本的數據結構,它們都用于存儲和處理文本數據。盡管它們在功能上有一定的重疊,但在內部表示、操作方式和使用場景上存在顯著差異。 1. 內部表示 字符串
    的頭像 發表于 01-07 15:29 ?992次閱讀